X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dbus%2Fdbus-keyring.c;h=0e433a8fa572989d2504b50b842b9c8674f1e51c;hb=0b2b6cba926a739ac56666f86ad4f88cbf5a8d48;hp=4b7182df24f498d8fc8d8c8d1c49e1cfd7dcbce1;hpb=d012387afef0ba02185ebe27bc6bb15551912e92;p=platform%2Fupstream%2Fdbus.git diff --git a/dbus/dbus-keyring.c b/dbus/dbus-keyring.c index 4b7182d..0e433a8 100644 --- a/dbus/dbus-keyring.c +++ b/dbus/dbus-keyring.c @@ -17,10 +17,11 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ +#include #include "dbus-keyring.h" #include "dbus-protocol.h" #include @@ -79,7 +80,7 @@ * Maximum number of keys in the keyring before * we just ignore the rest */ -#ifdef DBUS_BUILD_TESTS +#ifdef DBUS_ENABLE_EMBEDDED_TESTS #define MAX_KEYS_IN_FILE 10 #else #define MAX_KEYS_IN_FILE 256 @@ -142,8 +143,6 @@ _dbus_keyring_new (void) return keyring; - /* out_4: */ - _dbus_string_free (&keyring->filename_lock); out_3: _dbus_string_free (&keyring->filename); out_2: @@ -201,9 +200,8 @@ _dbus_keyring_lock (DBusKeyring *keyring) n_timeouts = 0; while (n_timeouts < MAX_LOCK_TIMEOUTS) { - DBusError error; + DBusError error = DBUS_ERROR_INIT; - dbus_error_init (&error); if (_dbus_create_file_exclusively (&keyring->filename_lock, &error)) break; @@ -219,13 +217,11 @@ _dbus_keyring_lock (DBusKeyring *keyring) if (n_timeouts == MAX_LOCK_TIMEOUTS) { - DBusError error; - + DBusError error = DBUS_ERROR_INIT; + _dbus_verbose ("Lock file timed out %d times, assuming stale\n", n_timeouts); - dbus_error_init (&error); - if (!_dbus_delete_file (&keyring->filename_lock, &error)) { _dbus_verbose ("Couldn't delete old lock file: %s\n", @@ -250,8 +246,8 @@ _dbus_keyring_lock (DBusKeyring *keyring) static void _dbus_keyring_unlock (DBusKeyring *keyring) { - DBusError error; - dbus_error_init (&error); + DBusError error = DBUS_ERROR_INIT; + if (!_dbus_delete_file (&keyring->filename_lock, &error)) { _dbus_warn ("Failed to delete lock file: %s\n", @@ -357,7 +353,7 @@ add_new_key (DBusKey **keys_p, goto out; } - _dbus_get_current_time (×tamp, NULL); + _dbus_get_real_time (×tamp, NULL); keys[n_keys-1].id = id; keys[n_keys-1].creation_time = timestamp; @@ -432,7 +428,7 @@ _dbus_keyring_reload (DBusKeyring *keyring, retval = FALSE; have_lock = FALSE; - _dbus_get_current_time (&now, NULL); + _dbus_get_real_time (&now, NULL); if (add_new) { @@ -607,7 +603,7 @@ _dbus_keyring_reload (DBusKeyring *keyring, } if (!_dbus_string_save_to_file (&contents, &keyring->filename, - error)) + FALSE, error)) goto out; } @@ -721,6 +717,13 @@ _dbus_keyring_new_for_credentials (DBusCredentials *credentials, DBusCredentials *our_credentials; _DBUS_ASSERT_ERROR_IS_CLEAR (error); + + if (_dbus_check_setuid ()) + { + dbus_set_error_const (error, DBUS_ERROR_NOT_SUPPORTED, + "Unable to create DBus keyring when setuid"); + return NULL; + } keyring = NULL; error_set = FALSE; @@ -912,7 +915,7 @@ find_recent_key (DBusKeyring *keyring) int i; long tv_sec, tv_usec; - _dbus_get_current_time (&tv_sec, &tv_usec); + _dbus_get_real_time (&tv_sec, &tv_usec); i = 0; while (i < keyring->n_keys) @@ -1020,7 +1023,7 @@ _dbus_keyring_get_hex_key (DBusKeyring *keyring, /** @} */ /* end of exposed API */ -#ifdef DBUS_BUILD_TESTS +#ifdef DBUS_ENABLE_EMBEDDED_TESTS #include "dbus-test.h" #include @@ -1078,7 +1081,7 @@ _dbus_keyring_test (void) dbus_error_init (&error); ring1 = _dbus_keyring_new_for_credentials (NULL, &context, &error); - _dbus_assert (ring1); + _dbus_assert (ring1 != NULL); _dbus_assert (error.name == NULL); id = _dbus_keyring_get_best_key (ring1, &error); @@ -1090,7 +1093,7 @@ _dbus_keyring_test (void) } ring2 = _dbus_keyring_new_for_credentials (NULL, &context, &error); - _dbus_assert (ring2); + _dbus_assert (ring2 != NULL); _dbus_assert (error.name == NULL); if (ring1->n_keys != ring2->n_keys) @@ -1153,5 +1156,5 @@ _dbus_keyring_test (void) return FALSE; } -#endif /* DBUS_BUILD_TESTS */ +#endif /* DBUS_ENABLE_EMBEDDED_TESTS */