summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--THANKS1
m---------gnulib0
-rw-r--r--src/group-list.c4
-rw-r--r--src/id.c4
-rw-r--r--src/setuidgid.c2
6 files changed, 9 insertions, 5 deletions
diff --git a/NEWS b/NEWS
index 9f7bf2e5f..19cca5bdb 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,9 @@ GNU coreutils NEWS -*- outline -*-
** Bug fixes
+ id no longer crashes on systems without supplementary group support.
+ [bug introduced in coreutils-8.1]
+
rm once again handles zero-length arguments properly.
The rewrite to make rm use fts introduced a regression whereby
a command like "rm a '' b" would fail to remove "a" and "b", due to
diff --git a/THANKS b/THANKS
index 52d41705a..3b03587d6 100644
--- a/THANKS
+++ b/THANKS
@@ -529,6 +529,7 @@ Samuli Karkkainen Samuli.Karkkainen@hut.fi
Sander van Malssen svm@kozmix.ow.nl
Santiago Vila Doncel sanvila@unex.es
Savochkin Andrey Vladimirovich saw@msu.ru
+Scott Harrison scott.gnu.2009@scottrix.co.uk
Scott Lurndal slurn@griffin.engr.sgi.com
Sébastien Maret smaret@umich.edu
Sergei Steshenko sergstesh@yahoo.com
diff --git a/gnulib b/gnulib
-Subproject cdfe647f8d29540cdfe90cef0fa568c5d2fd448
+Subproject 3e035a5d686888e5eba0b622dac459b65cdd99d
diff --git a/src/group-list.c b/src/group-list.c
index 1fadd0c57..a4b1f6dc6 100644
--- a/src/group-list.c
+++ b/src/group-list.c
@@ -58,9 +58,9 @@ print_group_list (const char *username,
gid_t *groups;
int i;
- int n_groups = mgetgroups (username, (pwd ? pwd->pw_gid : (gid_t) -1),
+ int n_groups = xgetgroups (username, (pwd ? pwd->pw_gid : (gid_t) -1),
&groups);
- if (n_groups < 0 && errno != ENOSYS)
+ if (n_groups < 0)
{
if (username)
{
diff --git a/src/id.c b/src/id.c
index 9a00f5ce4..96d8e965e 100644
--- a/src/id.c
+++ b/src/id.c
@@ -296,9 +296,9 @@ print_full_info (const char *username)
gid_t *groups;
int i;
- int n_groups = mgetgroups (username, (pwd ? pwd->pw_gid : (gid_t) -1),
+ int n_groups = xgetgroups (username, (pwd ? pwd->pw_gid : (gid_t) -1),
&groups);
- if (n_groups < 0 && errno != ENOSYS)
+ if (n_groups < 0)
{
if (username)
{
diff --git a/src/setuidgid.c b/src/setuidgid.c
index 0adac215c..2710bc9de 100644
--- a/src/setuidgid.c
+++ b/src/setuidgid.c
@@ -179,7 +179,7 @@ main (int argc, char **argv)
#if HAVE_SETGROUPS
if (n_gids == 0)
{
- int n = mgetgroups (pwd->pw_name, pwd->pw_gid, &gids);
+ int n = xgetgroups (pwd->pw_name, pwd->pw_gid, &gids);
if (n <= 0)
error (EXIT_FAILURE, errno, _("failed to get groups for user %s"),
quote (pwd->pw_name));