summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2005-02-14 19:07:29 +0000
committerHavoc Pennington <hp@redhat.com>2005-02-14 19:07:29 +0000
commit7b340cdb43e80656dddfeddac8390157ee1bf5d6 (patch)
treef673be1f4f8c4e0c24d710cb38ad0023020b65fd
parentbe672187a56300d5aa15b1e5b3bfa5dc0fe48818 (diff)
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
-rw-r--r--ChangeLog6
-rw-r--r--dbus/dbus-userdb-util.c24
2 files changed, 26 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index c25b77dc..59821b83 100644
--- 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)
diff --git a/dbus/dbus-userdb-util.c b/dbus/dbus-userdb-util.c
index 10226007..3d51f71d 100644
--- a/dbus/dbus-userdb-util.c
+++ b/dbus/dbus-userdb-util.c
@@ -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))
{