about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--nis/nss_nis/nis-grp.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 81defae3f5..d2089f5e2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-10-29  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #10692]
+	* nis/nss_nis/nis-grp.c (internal_nis_getgrent_r): Don't free buffer
+	in error if batch_read.  Patch by Joe Landers <jlanders@vmware.com>.
+
 	[BZ #10713]
 	* nis/nss_nis/nis-grp.c (internal_nis_endgrent): Start freeing blocks
 	from intern.start.  Patch by Joe Landers <jlanders@vmware.com>.
diff --git a/nis/nss_nis/nis-grp.c b/nis/nss_nis/nis-grp.c
index 071d8a2a55..6ad30eb1bb 100644
--- a/nis/nss_nis/nis-grp.c
+++ b/nis/nss_nis/nis-grp.c
@@ -204,7 +204,8 @@ internal_nis_getgrent_r (struct group *grp, char *buffer, size_t buflen,
 
       if (__builtin_expect ((size_t) (len + 1) > buflen, 0))
 	{
-	  free (result);
+	  if (!batch_read)
+	    free (result);
 	  *errnop = ERANGE;
 	  return NSS_STATUS_TRYAGAIN;
 	}