about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-06-19 11:38:04 -0700
committerUlrich Drepper <drepper@redhat.com>2010-06-19 11:38:04 -0700
commitac2b484c02b01307ab6bbe5d45ddbf16d64edf8c (patch)
treed937bc5e083c7eddc92e3d26e496d2082627f027
parent63c4ed22b5048c8701d8806026c23cc95f0df756 (diff)
downloadglibc-ac2b484c02b01307ab6bbe5d45ddbf16d64edf8c.tar.gz
glibc-ac2b484c02b01307ab6bbe5d45ddbf16d64edf8c.tar.xz
glibc-ac2b484c02b01307ab6bbe5d45ddbf16d64edf8c.zip
Correct checking loop in group_member.
-rw-r--r--ChangeLog3
-rw-r--r--NEWS8
-rw-r--r--posix/group_member.c9
3 files changed, 14 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index f50f11dacb..0741fc198d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2010-06-19  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #11701]
+	* posix/group_member.c (__group_member): Correct checking loop.
+
 	* sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle
 	OOM in getpwuid_r correctly.  Return error number when the caller
 	should return, otherwise -1.
diff --git a/NEWS b/NEWS
index 4d869d2c81..aafc4b0556 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2010-5-19
+GNU C Library NEWS -- history of user-visible changes.  2010-6-19
 Copyright (C) 1992-2009, 2010 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -7,7 +7,11 @@ using `glibc' in the "product" field.
 
 Version 2.13
 
-* POWER7 optimizations: memset
+* The following bugs are resolved with this release:
+
+  11640, 11701
+
+* POWER7 optimizations: memset, memcmp, strncmp
 
 Version 2.12
 
diff --git a/posix/group_member.c b/posix/group_member.c
index 7bd9c46ba2..892755e95a 100644
--- a/posix/group_member.c
+++ b/posix/group_member.c
@@ -1,5 +1,5 @@
 /* `group_member' -- test if process is in a given group.
-   Copyright (C) 1995, 1997, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 2002, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -39,10 +39,11 @@ __group_member (gid)
       groups = __alloca (size * sizeof *groups);
       n = __getgroups (size, groups);
       size *= 2;
-    } while (n == size / 2);
+    }
+  while (n == size / 2);
 
-  while (n >= 0)
-    if (groups[n--] == gid)
+  while (n-- > 0)
+    if (groups[n] == gid)
       return 1;
 
   return 0;