about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS2
-rw-r--r--hesiod/nss_hesiod/hesiod-grp.c27
3 files changed, 5 insertions, 28 deletions
diff --git a/ChangeLog b/ChangeLog
index 9a8bab6450..7c1543cd50 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2013-03-28  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
+	[BZ #15304]
+	* hesiod/nss_hesiod/hesiod-grp.c (_nss_hesiod_initgroups_dyn):
+	Don't add gid passed as argument.
+
 	* sysdeps/ieee-754/dbl-64/e_atan2.c: Reformat.
 
 2013-03-27  Joseph Myers  <joseph@codesourcery.com>
diff --git a/NEWS b/NEWS
index 11c79bb488..0902478638 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,7 @@ Version 2.18
   11120, 11561, 12723, 13550, 13889, 13951, 14142, 14176, 14200, 14317,
   14327, 14496, 14812, 14920, 14964, 14981, 14982, 14985, 14994, 14996,
   15003, 15006, 15020, 15023, 15036, 15054, 15055, 15062, 15078, 15160,
-  15232, 15234, 15283, 15285, 15287, 15307.
+  15232, 15234, 15283, 15285, 15287, 15304, 15307.
 
 * Add support for calling C++11 thread_local object destructors on thread
   and program exit.  This needs compiler support for offloading C++11
diff --git a/hesiod/nss_hesiod/hesiod-grp.c b/hesiod/nss_hesiod/hesiod-grp.c
index c2ae16612d..b11952fadf 100644
--- a/hesiod/nss_hesiod/hesiod-grp.c
+++ b/hesiod/nss_hesiod/hesiod-grp.c
@@ -191,33 +191,6 @@ _nss_hesiod_initgroups_dyn (const char *user, gid_t group, long int *start,
       return errno == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
     }
 
-  if (!internal_gid_in_list (groups, group, *start))
-    {
-      if (__builtin_expect (*start == *size, 0))
-	{
-	  /* Need a bigger buffer.  */
-	  gid_t *newgroups;
-	  long int newsize;
-
-	  if (limit > 0 && *size == limit)
-	    /* We reached the maximum.  */
-	    goto done;
-
-	  if (limit <= 0)
-	    newsize = 2 * *size;
-	  else
-	    newsize = MIN (limit, 2 * *size);
-
-	  newgroups = realloc (groups, newsize * sizeof (*groups));
-	  if (newgroups == NULL)
-	    goto done;
-	  *groupsp = groups = newgroups;
-	  *size = newsize;
-	}
-
-      groups[(*start)++] = group;
-    }
-
   save_errno = errno;
 
   p = *list;