]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
2003-04-11 Havoc Pennington <hp@redhat.com>
authorHavoc Pennington <hp@redhat.com>
Fri, 11 Apr 2003 20:10:36 +0000 (20:10 +0000)
committerHavoc Pennington <hp@redhat.com>
Fri, 11 Apr 2003 20:10:36 +0000 (20:10 +0000)
* bus/bus.c (bus_context_new): move credentials change after
creating pidfile

ChangeLog
bus/bus.c

index b6f7e902b68193c5e374cc724e25d4f47cb54a83..c608f29ac29a3f87f4719cffc9dc507aa75f9f1b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-11  Havoc Pennington  <hp@redhat.com>
+
+       * bus/bus.c (bus_context_new): move credentials change after
+       creating pidfile
+
 2003-04-11  Havoc Pennington  <hp@pobox.com>
 
        * test/decode-gcov.c: add "below average functions" to the
index d8d2a9c1f3ea5f0be0eab5d3ec85b527f4b0df11..3b2ffc0c6328f61c7d220ccda1a82d6c15e74b31 100644 (file)
--- 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);