Date: Thu, 17 Jan 2002 22:00:28 +0000 From: Mark Murray <mark@grondar.za> To: audit@freebsd.org Subject: Fixes for gid_t usage in libc Message-ID: <200201172200.g0HM0St19717@grimreaper.grondar.org>
next in thread | raw e-mail | index | archive | help
Hi
Reviews please?
This fixes some places where groups are handled in integers
rather than gid_t's.
I've been running it for more than a month.
M
Index: include/grp.h
===================================================================
RCS file: /home/ncvs/src/include/grp.h,v
retrieving revision 1.3
diff -u -d -r1.3 grp.h
--- include/grp.h 7 May 1997 19:59:59 -0000 1.3
+++ include/grp.h 7 Dec 2001 20:48:47 -0000
@@ -48,7 +48,7 @@
struct group {
char *gr_name; /* group name */
char *gr_passwd; /* group password */
- int gr_gid; /* group id */
+ gid_t gr_gid; /* group id */
char **gr_mem; /* group members */
};
Index: include/unistd.h
===================================================================
RCS file: /home/ncvs/src/include/unistd.h,v
retrieving revision 1.46
diff -u -d -r1.46 unistd.h
--- include/unistd.h 22 Dec 2001 05:18:37 -0000 1.46
+++ include/unistd.h 22 Dec 2001 14:23:04 -0000
@@ -140,7 +140,7 @@
#endif
int getdomainname __P((char *, int));
int getdtablesize __P((void));
-int getgrouplist __P((const char *, int, int *, int *));
+int getgrouplist __P((const char *, gid_t, gid_t *, int *));
long gethostid __P((void));
int gethostname __P((char *, int));
int getlogin_r __P((char *, int));
@@ -154,7 +154,7 @@
int getsid __P((pid_t _pid));
char *getusershell __P((void));
char *getwd __P((char *)); /* obsoleted by getcwd() */
-int initgroups __P((const char *, int));
+int initgroups __P((const char *, gid_t));
int iruserok __P((unsigned long, int, const char *, const char *));
int iruserok_sa __P((const void *, int, int, const char *, const char *));
int issetugid __P((void));
Index: lib/libc/gen/getgrent.3
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/getgrent.3,v
retrieving revision 1.17
diff -u -d -r1.17 getgrent.3
--- lib/libc/gen/getgrent.3 14 Jan 2002 16:59:00 -0000 1.17
+++ lib/libc/gen/getgrent.3 15 Jan 2002 18:55:26 -0000
@@ -78,7 +78,7 @@
struct group {
char *gr_name; /* group name */
char *gr_passwd; /* group password */
- int gr_gid; /* group id */
+ gid_t gr_gid; /* group id */
char **gr_mem; /* group members */
};
.Ed
Index: lib/libc/gen/getgrouplist.3
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/getgrouplist.3,v
retrieving revision 1.7
diff -u -d -r1.7 getgrouplist.3
--- lib/libc/gen/getgrouplist.3 1 Oct 2001 16:08:51 -0000 1.7
+++ lib/libc/gen/getgrouplist.3 14 Dec 2001 15:21:22 -0000
@@ -43,7 +43,7 @@
.Sh SYNOPSIS
.In unistd.h
.Ft int
-.Fn getgrouplist "const char *name" "int basegid" "int *groups" "int *ngroups"
+.Fn getgrouplist "const char *name" "gid_t basegid" "gid_t *groups" "int *ngroups"
.Sh DESCRIPTION
The
.Fn getgrouplist
@@ -56,7 +56,7 @@
Typically this value is given as
the group number from the password file.
.Pp
-The resulting group list is returned in the integer array pointed to by
+The resulting group list is returned in the array pointed to by
.Fa groups .
The caller specifies the size of the
.Fa groups
Index: lib/libc/gen/getgrouplist.c
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/getgrouplist.c,v
retrieving revision 1.7
diff -u -d -r1.7 getgrouplist.c
--- lib/libc/gen/getgrouplist.c 12 Mar 1997 14:54:22 -0000 1.7
+++ lib/libc/gen/getgrouplist.c 14 Dec 2001 15:29:19 -0000
@@ -31,9 +31,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)getgrouplist.c 8.2 (Berkeley) 12/8/94";
-#endif /* LIBC_SCCS and not lint */
+#endif
/*
* get credential
@@ -45,12 +48,12 @@
int
getgrouplist(uname, agroup, groups, grpcnt)
const char *uname;
- int agroup;
- register int *groups;
+ gid_t agroup;
+ gid_t *groups;
int *grpcnt;
{
- register struct group *grp;
- register int i, ngroups;
+ struct group *grp;
+ int i, ngroups;
int ret, maxgroups;
ret = 0;
Index: lib/libc/gen/initgroups.3
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/initgroups.3,v
retrieving revision 1.11
diff -u -d -r1.11 initgroups.3
--- lib/libc/gen/initgroups.3 28 Nov 2001 10:55:02 -0000 1.11
+++ lib/libc/gen/initgroups.3 14 Dec 2001 15:18:14 -0000
@@ -43,7 +43,7 @@
.Sh SYNOPSIS
.In unistd.h
.Ft int
-.Fn initgroups "const char *name" "int basegid"
+.Fn initgroups "const char *name" "gid_t basegid"
.Sh DESCRIPTION
The
.Fn initgroups
Index: lib/libc/gen/initgroups.c
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/initgroups.c,v
retrieving revision 1.5
diff -u -d -r1.5 initgroups.c
--- lib/libc/gen/initgroups.c 28 Nov 2001 10:55:02 -0000 1.5
+++ lib/libc/gen/initgroups.c 14 Dec 2001 15:30:10 -0000
@@ -31,14 +31,12 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
static char sccsid[] = "@(#)initgroups.c 8.1 (Berkeley) 6/4/93";
-#else
-static const char rcsid[] =
- "$FreeBSD: src/lib/libc/gen/initgroups.c,v 1.5 2001/11/28 10:55:02 tobez Exp $";
#endif
-#endif /* LIBC_SCCS and not lint */
#include <sys/param.h>
@@ -51,7 +49,7 @@
int
initgroups(uname, agroup)
const char *uname;
- int agroup;
+ gid_t agroup;
{
int groups[NGROUPS], ngroups;
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-audit" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201172200.g0HM0St19717>
