summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorAnton Berezin <tobez@FreeBSD.org>2001-11-28 10:55:02 +0000
committerAnton Berezin <tobez@FreeBSD.org>2001-11-28 10:55:02 +0000
commit7d3346ca1f857d6078f948e03b83abae618820da (patch)
treec98e3ceceeb1cee49d8a3d0e9586c3f263f2f0dd /lib/libc
parentca7e26e312677acb6ef50eec78443e6f6a997559 (diff)
Notes
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/gen/initgroups.38
-rw-r--r--lib/libc/gen/initgroups.c10
2 files changed, 8 insertions, 10 deletions
diff --git a/lib/libc/gen/initgroups.3 b/lib/libc/gen/initgroups.3
index eb111513daef..115ab0c34305 100644
--- a/lib/libc/gen/initgroups.3
+++ b/lib/libc/gen/initgroups.3
@@ -61,10 +61,14 @@ is automatically included in the groups list.
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
diff --git a/lib/libc/gen/initgroups.c b/lib/libc/gen/initgroups.c
index 99189559870e..3fc9bb2f4042 100644
--- a/lib/libc/gen/initgroups.c
+++ b/lib/libc/gen/initgroups.c
@@ -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));
}