From 5493f3ddc38e5cc961b03655de17f654eb5d8533 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 30 Apr 2006 15:36:48 +0000 Subject: * nis/nss_nisplus/nisplus-publickey.c (parse_grp_str): PIDLIST is supposed to have NGRPS elements. --- nis/nss_nisplus/nisplus-publickey.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'nis/nss_nisplus/nisplus-publickey.c') 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; -- cgit 1.4.1