From fff4709be676718a54e280fd3b4ac4b742554982 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Fri, 11 Apr 2003 20:10:36 +0000 Subject: 2003-04-11 Havoc Pennington * bus/bus.c (bus_context_new): move credentials change after creating pidfile --- ChangeLog | 5 +++++ bus/bus.c | 50 +++++++++++++++++++++++++------------------------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index b6f7e902..c608f29a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-04-11 Havoc Pennington + + * bus/bus.c (bus_context_new): move credentials change after + creating pidfile + 2003-04-11 Havoc Pennington * test/decode-gcov.c: add "below average functions" to the diff --git a/bus/bus.c b/bus/bus.c index d8d2a9c1..3b2ffc0c 100644 --- a/bus/bus.c +++ b/bus/bus.c @@ -455,31 +455,6 @@ bus_context_new (const DBusString *config_file, link = _dbus_list_get_next_link (addresses, link); } - /* Here we change our credentials if required, - * as soon as we've set up our sockets - */ - user = bus_config_parser_get_user (parser); - if (user != NULL) - { - DBusCredentials creds; - DBusString u; - - _dbus_string_init_const (&u, user); - - if (!_dbus_credentials_from_username (&u, &creds) || - creds.uid < 0 || - creds.gid < 0) - { - dbus_set_error (error, DBUS_ERROR_FAILED, - "Could not get UID and GID for username \"%s\"", - user); - goto failed; - } - - if (!_dbus_change_identity (creds.uid, creds.gid, error)) - goto failed; - } - /* note that type may be NULL */ context->type = _dbus_strdup (bus_config_parser_get_type (parser)); @@ -636,6 +611,31 @@ bus_context_new (const DBusString *config_file, /* keep around the pid filename so we can delete it later */ context->pidfile = _dbus_strdup (pidfile); + + /* Here we change our credentials if required, + * as soon as we've set up our sockets and pidfile + */ + user = bus_config_parser_get_user (parser); + if (user != NULL) + { + DBusCredentials creds; + DBusString u; + + _dbus_string_init_const (&u, user); + + if (!_dbus_credentials_from_username (&u, &creds) || + creds.uid < 0 || + creds.gid < 0) + { + dbus_set_error (error, DBUS_ERROR_FAILED, + "Could not get UID and GID for username \"%s\"", + user); + goto failed; + } + + if (!_dbus_change_identity (creds.uid, creds.gid, error)) + goto failed; + } bus_config_parser_unref (parser); _dbus_string_free (&full_address); -- cgit