On Tue, Nov 13, 2001 at 02:28:57PM -0800, Terry Lambert wrote:
> Max Khon wrote:
> > 
> > hi, there!
> > 
> > Any objections if I will commit the following patch (see PR/15421)?
> 
> Can setgroups return a positive number?  If so, you've just changed
> the semantics of the funtion; before, it used to return 0 on 0 or a
> positive number.
> 
No.  setgroups() is a syscall, and as such returns either 0 or -1.

> Also, is removing the _warn() really the only thing you want to
> accomplish?  It should probably be seperate.
> 
I have intended to commit the below patch for almost a year now,
just haven't had enough time to actually fo it.  NetBSD runs with
this fix since 1999.

Index: initgroups.c
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/initgroups.c,v
retrieving revision 1.4
diff -u -p -r1.4 initgroups.c
--- initgroups.c        2001/08/29 13:52:26     1.4
+++ initgroups.c        2001/11/19 16:16:11
@@ -56,12 +56,6 @@ initgroups(uname, agroup)
        int groups[NGROUPS], ngroups;
 
        ngroups = NGROUPS;
-       if (getgrouplist(uname, agroup, groups, &ngroups) < 0)
-               warnx("%s is in too many groups, using first %d",
-                   uname, ngroups);
-       if (setgroups(ngroups, groups) < 0) {
-               _warn("setgroups");
-               return (-1);
-       }
-       return (0);
+       getgrouplist(uname, agroup, groups, &ngroups);
+       return (setgroups(ngroups, groups);
 }
Index: initgroups.3
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/initgroups.3,v
retrieving revision 1.10
diff -u -p -r1.10 initgroups.3
--- initgroups.3        2001/10/01 16:08:51     1.10
+++ initgroups.3        2001/11/19 16:16:11
@@ -61,10 +61,14 @@ is automatically included in the groups 
 Typically this value is given as
 the group number from the password file.
 .Sh RETURN VALUES
+.Rv -std initgroups
+.Sh ERRORS
 The
 .Fn initgroups
-function
-returns \-1 if it was not invoked by the super-user.
+function may fail and set
+.Va errno
+for any of the errors specified for the library function
+.Xr setgroups 2 .
 .Sh SEE ALSO
 .Xr setgroups 2 ,
 .Xr getgrouplist 3


Cheers,
-- 
Ruslan Ermilov          Oracle Developer/DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to