Date: Tue, 9 Jun 2009 14:18:16 +0000 (UTC) From: Brooks Davis <brooks@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r193832 - projects/ngroups/lib/libc/gen Message-ID: <200906091418.n59EIGGD073717@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: brooks Date: Tue Jun 9 14:18:16 2009 New Revision: 193832 URL: http://svn.freebsd.org/changeset/base/193832 Log: Fix some style bugs and return the right error. Also, document the new out of memory error condition. Modified: projects/ngroups/lib/libc/gen/initgroups.3 projects/ngroups/lib/libc/gen/initgroups.c Modified: projects/ngroups/lib/libc/gen/initgroups.3 ============================================================================== --- projects/ngroups/lib/libc/gen/initgroups.3 Tue Jun 9 14:07:29 2009 (r193831) +++ projects/ngroups/lib/libc/gen/initgroups.3 Tue Jun 9 14:18:16 2009 (r193832) @@ -65,6 +65,13 @@ function may fail and set .Va errno for any of the errors specified for the library function .Xr setgroups 2 . +It may also return: +.Bl -tag -width Er +.It Bq Er ENOMEM +The +.Fn initgroups +function was unable to allocate temporary storage. +.El .Sh SEE ALSO .Xr setgroups 2 , .Xr getgrouplist 3 Modified: projects/ngroups/lib/libc/gen/initgroups.c ============================================================================== --- projects/ngroups/lib/libc/gen/initgroups.c Tue Jun 9 14:07:29 2009 (r193831) +++ projects/ngroups/lib/libc/gen/initgroups.c Tue Jun 9 14:18:16 2009 (r193832) @@ -35,12 +35,12 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> -#include <stdlib.h> -#include <stdio.h> #include "namespace.h" #include <err.h> #include "un-namespace.h" #include <errno.h> +#include <stdio.h> +#include <stdlib.h> #include <unistd.h> int @@ -56,12 +56,11 @@ initgroups(uname, agroup) * setgroups to fail and set errno. */ ngroups = sysconf(_SC_NGROUPS_MAX) + 1; - groups = malloc(sizeof(gid_t)*ngroups); - if (groups == NULL) - return (ENOSPC); + if ((groups = malloc(sizeof(*groups) * ngroups)) == NULL) + return (ENOMEM); getgrouplist(uname, agroup, groups, &ngroups); ret = setgroups(ngroups, groups); free(groups); - return(ret); + return (ret); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906091418.n59EIGGD073717>