diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2008-08-25 22:30:20 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2008-08-25 22:30:20 +0000 |
commit | 0107a652b6202ac315e9ab7a2e97fe73bdc9469f (patch) | |
tree | 61dae2c03f94fb80b893ccfaab9d645bd511f719 | |
parent | 94d8279a310fbff6748413762cee56f5b57e4edf (diff) |
correct +name handling; schwarze@usta.de
-rw-r--r-- | lib/libc/gen/getgrent.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libc/gen/getgrent.c b/lib/libc/gen/getgrent.c index 6de1ad14f01..7ae8a92a27e 100644 --- a/lib/libc/gen/getgrent.c +++ b/lib/libc/gen/getgrent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: getgrent.c,v 1.25 2008/06/24 14:29:45 deraadt Exp $ */ +/* $OpenBSD: getgrent.c,v 1.26 2008/08/25 22:30:19 deraadt Exp $ */ /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. @@ -356,14 +356,14 @@ grscan(int search, gid_t gid, const char *name, struct group *p_gr, } #ifdef YP if (line[0] == '+') { - if (foundyp) { - *foundyp = 1; - return (NULL); - } switch (line[1]) { case ':': case '\0': case '\n': + if (foundyp) { + *foundyp = 1; + return (NULL); + } if (_yp_check(NULL)) { if (!search) { __ypmode = YPMODE_FULL; @@ -414,10 +414,11 @@ grscan(int search, gid_t gid, const char *name, struct group *p_gr, char *tptr; tptr = strsep(&bp, ":\n"); + tptr++; if (search && name && strcmp(tptr, name)) continue; __ypmode = YPMODE_NAME; - grname = strdup(tptr + 1); + grname = strdup(tptr); continue; } break; |