diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-04-30 15:36:48 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-04-30 15:36:48 +0000 |
commit | 5493f3ddc38e5cc961b03655de17f654eb5d8533 (patch) | |
tree | 0a3cac9d1d3b7e4e27cdbafa9e87546416da3043 | |
parent | ac05397075f621cfdbe1db527c96167a58b6d18e (diff) | |
download | glibc-5493f3ddc38e5cc961b03655de17f654eb5d8533.tar.gz glibc-5493f3ddc38e5cc961b03655de17f654eb5d8533.tar.xz glibc-5493f3ddc38e5cc961b03655de17f654eb5d8533.zip |
* nis/nss_nisplus/nisplus-publickey.c (parse_grp_str): PIDLIST is
supposed to have NGRPS elements.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | nis/nss_nisplus/nisplus-publickey.c | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 49e28b38b7..b701bae888 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-04-30 Ulrich Drepper <drepper@redhat.com> + * nis/nss_nisplus/nisplus-publickey.c (parse_grp_str): PIDLIST is + supposed to have NGRPS elements. + * nis/nss_nisplus/nisplus-parser.c: Minor optimizations and cleanups. Avoid copying data if it can be used in the old place. diff --git a/nis/nss_nisplus/nisplus-publickey.c b/nis/nss_nisplus/nisplus-publickey.c index fe269b2c48..f6b32f8827 100644 --- a/nis/nss_nisplus/nisplus-publickey.c +++ b/nis/nss_nisplus/nisplus-publickey.c @@ -226,8 +226,12 @@ parse_grp_str (const char *s, gid_t *gidp, int *gidlenp, gid_t *gidlist, gidlen = 0; /* After strtoul() ep should point to the marker ',', which means - here starts a new value. */ - while (ep != NULL && *ep == ',') + here starts a new value. + + The Sun man pages show that GIDLIST should contain at least NGRPS + elements. Limiting the number written by this value is the best + we can do. */ + while (ep != NULL && *ep == ',' && gidlen < NGRPS) { ep++; s = ep; |