From d81716addb44a89c69c1bcb7643f4792e77881ff Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 23 Jan 2008 14:12:04 +0100 Subject: [PATCH] Avoid misinterpreting mgetgroups failure in running root-only tests. * src/setuidgid.c (main): Don't misinterpret as size_t an error return from mgetgroups. Reported by Theodoros V. Kalamatianos. --- ChangeLog | 4 ++++ THANKS | 1 + src/setuidgid.c | 7 ++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79ec5efd45..80be17238b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2008-01-23 Jim Meyering + Avoid misinterpreting mgetgroups failure in running root-only tests. + * src/setuidgid.c (main): Don't misinterpret as size_t an error + return from mgetgroups. Reported by Theodoros V. Kalamatianos. + * README: Remove/convert a few stray mentions of CVS. 2008-01-22 Jim Meyering diff --git a/THANKS b/THANKS index 512149504f..9e4e7e03d0 100644 --- a/THANKS +++ b/THANKS @@ -488,6 +488,7 @@ Tadayoshi Funaba tadf@kt.rim.or.jp TAKAI Kousuke takai@vlsi.kuee.kyoto-u.ac.jp Theodore Ts'o tytso@rsts-11.mit.edu The Wanderer inverseparadox@comcast.net +Theodoros V. Kalamatianos nyb@users.sourceforge.net Thomas Bushnell thomas@gnu.ai.mit.edu Thomas Goerlich thomas@schnappmatik.de Thomas Hood jdthood@yahoo.co.uk diff --git a/src/setuidgid.c b/src/setuidgid.c index 0f551f9cfa..83369fdef9 100644 --- a/src/setuidgid.c +++ b/src/setuidgid.c @@ -1,5 +1,5 @@ /* setuidgid - run a command with the UID and GID of a specified user - Copyright (C) 2003-2007 Free Software Foundation, Inc. + Copyright (C) 2003-2008 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -181,10 +181,11 @@ main (int argc, char **argv) #if HAVE_SETGROUPS if (n_gids == 0) { - n_gids = mgetgroups (pwd->pw_name, pwd->pw_gid, &gids); - if (n_gids <= 0) + int n = mgetgroups (pwd->pw_name, pwd->pw_gid, &gids); + if (n <= 0) error (1, errno, _("failed to get groups for user %s"), quote (pwd->pw_name)); + n_gids = n; } if (setgroups (n_gids, gids)) -- 2.39.5