diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-01-17 10:42:43 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2007-01-17 10:42:43 +0000 |
commit | af98d46f5a025ae33c60ddb1a5edc753fb714bc5 (patch) | |
tree | 24a3c5cb0bfc6163b52ae74ac205f0e175beee87 /nis/nss_compat | |
parent | 1f09da09fed864c91288ff91295114fa5202edaa (diff) |
Updated to fedora-glibc-20070117T0857
Diffstat (limited to 'nis/nss_compat')
-rw-r--r-- | nis/nss_compat/compat-grp.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/nis/nss_compat/compat-grp.c b/nis/nss_compat/compat-grp.c index f2f7195be1..236c84a20f 100644 --- a/nis/nss_compat/compat-grp.c +++ b/nis/nss_compat/compat-grp.c @@ -580,13 +580,17 @@ internal_getgrgid_r (gid_t gid, struct group *result, ent_t *ent, /* +group */ if (result->gr_name[0] == '+' && result->gr_name[1] != '\0') { + /* Yes, no +1, see the memcpy call below. */ + size_t len = strlen (result->gr_name); + char buf[len]; enum nss_status status; /* Store the group in the blacklist for the "+" at the end of /etc/group */ - blacklist_store_name (&result->gr_name[1], ent); + memcpy (buf, &result->gr_name[1], len); status = getgrnam_plusgroup (&result->gr_name[1], result, ent, buffer, buflen, errnop); + blacklist_store_name (buf, ent); if (status == NSS_STATUS_SUCCESS && result->gr_gid == gid) break; else |