Date: Mon, 19 Nov 2001 18:19:50 +0200 From: Ruslan Ermilov <ru@FreeBSD.ORG> To: Terry Lambert <tlambert2@mindspring.com> Cc: Max Khon <fjoe@iclub.nsu.ru>, current@FreeBSD.ORG, tobez@FreeBSD.ORG Subject: Re: misc/15421 (was: Re: initgroups) Message-ID: <20011119181949.R32927@sunbay.com> In-Reply-To: <3BF19EA9.3FC5F040@mindspring.com> References: <20011114021956.B10325@iclub.nsu.ru> <3BF19EA9.3FC5F040@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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,
ru@sunbay.com Sunbay Software AG,
ru@FreeBSD.org 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011119181949.R32927>
