about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--config.make.in2
-rw-r--r--inet/getnetgrent_r.c10
-rw-r--r--nscd/nscd_getserv_r.c2
4 files changed, 26 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 63887b7913..38149a6f36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2011-07-06  Ulrich Drepper  <drepper@gmail.com>
+
+	* inet/getnetgrent_r.c (internal_getnetgrent_r): Fix check for known
+	netgroups to read.
+	(innetgr): Likewise.
+
+2011-07-05  Roland McGrath  <roland@hack.frob.com>
+
+	* config.make.in (install_root): Default to $(DESTDIR).
+
+2011-07-05  Ulrich Drepper  <drepper@gmail.com>
+
+	* nscd/nscd_getserv_r.c (nscd_getserv_r): Add cast to avoid warning.
+
 2011-07-02  Roland McGrath  <roland@hack.frob.com>
 
 	* Makerules ($(common-objpfx)format.lds): Fail if result is empty.
diff --git a/config.make.in b/config.make.in
index 6e876ebece..b73b21e09b 100644
--- a/config.make.in
+++ b/config.make.in
@@ -5,7 +5,7 @@ version = @VERSION@
 release = @RELEASE@
 
 # Installation prefixes.
-install_root =
+install_root = $(DESTDIR)
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 datadir = @datadir@
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)
 			{
diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
index f9ef0565d8..3b7dc4b620 100644
--- a/nscd/nscd_getserv_r.c
+++ b/nscd/nscd_getserv_r.c
@@ -374,7 +374,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
       if (retval != -1)
 	{
 	  if (!alloca_aliases_len)
-	    free (aliases_len);
+	    free ((void *) aliases_len);
 	  goto retry;
 	}
     }