about summary refs log tree commit diff
path: root/inet/getnetgrent_r.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-07-06 20:39:06 -0400
committerUlrich Drepper <drepper@gmail.com>2011-07-06 20:39:06 -0400
commit1de911c8747205999fb4528fcbca326a7afb2f25 (patch)
treee279afe7516e61bc62703b84344d76b6c5376a6d /inet/getnetgrent_r.c
parent17a21a3907cbbc731fed12eab8c50a21dc2d6ad3 (diff)
parent960e5535b08ea358caefe8eb831aae36cc4826c5 (diff)
downloadglibc-1de911c8747205999fb4528fcbca326a7afb2f25.tar.gz
glibc-1de911c8747205999fb4528fcbca326a7afb2f25.tar.xz
glibc-1de911c8747205999fb4528fcbca326a7afb2f25.zip
Merge branch 'master' of ssh://sourceware.org/git/glibc
Diffstat (limited to 'inet/getnetgrent_r.c')
-rw-r--r--inet/getnetgrent_r.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
index 42045a201d..91cdcce468 100644
--- a/inet/getnetgrent_r.c
+++ b/inet/getnetgrent_r.c
@@ -279,6 +279,11 @@ internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
 	       namep = namep->next)
 	    if (strcmp (datap->val.group, namep->name) == 0)
 	      break;
+	  if (namep == NULL)
+	    for (namep = datap->needed_groups; namep != NULL;
+		 namep = namep->next)
+	      if (strcmp (datap->val.group, namep->name) == 0)
+		break
 	  if (namep != NULL)
 	    /* Really ignore.  */
 	    continue;
@@ -384,6 +389,11 @@ innetgr (const char *netgroup, const char *host, const char *user,
 			   namep = namep->next)
 			if (strcmp (entry.val.group, namep->name) == 0)
 			  break;
+		      if (namep == NULL)
+			for (namep = entry.needed_groups; namep != NULL;
+			     namep = namep->next)
+			  if (strcmp (entry.val.group, namep->name) == 0)
+			    break;
 		      if (namep == NULL
 			  && strcmp (netgroup, entry.val.group) != 0)
 			{