diff options
author | Pádraig Brady <P@draigBrady.com> | 2009-04-08 10:43:15 +0100 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2009-04-09 14:07:29 +0100 |
commit | bf87a2c8ea4487ca4448c9fe42a9c9858400acbd (patch) | |
tree | 74ecdd17b278c53f6cfcaee0bac7e2e1ee03559e /NEWS | |
parent | 148ddb3232e6319479222d4f7dee49b2c44ce21a (diff) | |
download | coreutils-bf87a2c8ea4487ca4448c9fe42a9c9858400acbd.tar.xz |
id: fix infinite loop on some systems
Steven Parkes reported that `id -G $USER` went into an infinite loop
on Darwin systems for users in more than 10 groups:
http://bugs.gentoo.org/show_bug.cgi?id=264007
* gl/lib/mgetgroups.c (mgetgroups): Work around buggy getgrouplist
implementations that don't update the required size correctly,
by doubling the result buffer and retrying. Also return the
parameter updated by getgrouplist rather than its return value,
as the documentation doesn't actually state the number of groups
stored is returned by getgrouplist.
* tests/misc/id-groups: Add test to exercise this logic
* tests/Makefile.am: Reference new test
* NEWS: Mention the fix
* THANKS: Update
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -14,6 +14,14 @@ GNU coreutils NEWS -*- outline -*- default should proceed at the speed of the disk. Previously /dev/urandom was used if available, which is relatively slow on GNU/Linux systems. +** Portability + + `id -G $USER` now works correctly even on Darwin and NetBSD. Previously it + would either truncate the group list to 10, or go into an infinite loop, + due to their non-standard getgroups implementations. + [truncation introduced in coreutils-6.11] + [infinite loop introduced in coreutils-7.1] + * Noteworthy changes in release 7.2 (2009-03-31) [stable] ** New features |