2005-02-14 Havoc Pennington <hp@redhat.com>
authorHavoc Pennington <hp@redhat.com>
Mon, 14 Feb 2005 19:07:29 +0000 (19:07 +0000)
committerHavoc Pennington <hp@redhat.com>
Mon, 14 Feb 2005 19:07:29 +0000 (19:07 +0000)
* dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
properly handle looking up group information by name; fix
from j@bootlab.org

ChangeLog
dbus/dbus-userdb-util.c

index c25b77d..59821b8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-02-14  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
+       properly handle looking up group information by name; fix 
+       from j@bootlab.org
+
 2005-02-13  Havoc Pennington  <hp@redhat.com>
 
        * dbus/dbus-connection.c (dbus_connection_return_message) 
index 1022600..3d51f71 100644 (file)
@@ -218,12 +218,28 @@ _dbus_user_database_lookup_group (DBusUserDatabase *db,
           return NULL;
         }
 
-      if (!_dbus_group_info_fill_gid (info, gid, error))
+      if (gid != DBUS_GID_UNSET)
         {
-          _DBUS_ASSERT_ERROR_IS_SET (error);
-          _dbus_group_info_free_allocated (info);
-          return NULL;
+          if (!_dbus_group_info_fill_gid (info, gid, error))
+            {
+              _DBUS_ASSERT_ERROR_IS_SET (error);
+              _dbus_group_info_free_allocated (info);
+              return NULL;
+            }
         }
+      else
+        {
+          if (!_dbus_group_info_fill (info, groupname, error))
+            {
+              _DBUS_ASSERT_ERROR_IS_SET (error);
+              _dbus_group_info_free_allocated (info);
+              return NULL;
+            }
+        }
+
+      /* don't use these past here */
+      gid = DBUS_GID_UNSET;
+      groupname = NULL;
 
       if (!_dbus_hash_table_insert_ulong (db->groups, info->gid, info))
         {