Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Oct 2012 04:15:19 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r241181 - in head: include/rpc lib/libc/rpc sys/rpc
Message-ID:  <201210040415.q944FJWK059470@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Thu Oct  4 04:15:18 2012
New Revision: 241181
URL: http://svn.freebsd.org/changeset/base/241181

Log:
  rpc: convert all uid and gid variables to u_int.
  
  After further discussion, instead of pretending to use
  uid_t and gid_t as upstream Solaris and linux try to, we
  are better using u_int, which is in fact what the code
  can handle and best approaches the range of values used
  by uid and gid.
  
  Discussed with:	bde
  Reviewed by:	bde

Modified:
  head/include/rpc/auth.h
  head/include/rpc/auth_unix.h
  head/lib/libc/rpc/auth_unix.c
  head/lib/libc/rpc/authunix_prot.c
  head/lib/libc/rpc/rpc_soc.3
  head/lib/libc/rpc/svc_auth_unix.c
  head/sys/rpc/auth.h

Modified: head/include/rpc/auth.h
==============================================================================
--- head/include/rpc/auth.h	Thu Oct  4 03:59:45 2012	(r241180)
+++ head/include/rpc/auth.h	Thu Oct  4 04:15:18 2012	(r241181)
@@ -243,13 +243,13 @@ __END_DECLS
  * System style authentication
  * AUTH *authunix_create(machname, uid, gid, len, aup_gids)
  *	char *machname;
- *	uid_t uid;
- *	gid_t gid;
+ *	u_int uid;
+ *	u_int gid;
  *	int len;
- *	gid_t *aup_gids;
+ *	u_int *aup_gids;
  */
 __BEGIN_DECLS
-extern AUTH *authunix_create(char *, uid_t, gid_t, int, gid_t *);
+extern AUTH *authunix_create(char *, u_int, u_int, int, u_int *);
 extern AUTH *authunix_create_default(void);	/* takes no parameters */
 extern AUTH *authnone_create(void);		/* takes no parameters */
 __END_DECLS

Modified: head/include/rpc/auth_unix.h
==============================================================================
--- head/include/rpc/auth_unix.h	Thu Oct  4 03:59:45 2012	(r241180)
+++ head/include/rpc/auth_unix.h	Thu Oct  4 04:15:18 2012	(r241181)
@@ -60,10 +60,10 @@
 struct authunix_parms {
 	u_long	 aup_time;
 	char	*aup_machname;
-	uid_t	 aup_uid;
-	gid_t	 aup_gid;
+	u_int	 aup_uid;
+	u_int	 aup_gid;
 	u_int	 aup_len;
-	gid_t	*aup_gids;
+	u_int	*aup_gids;
 };
 
 #define authsys_parms authunix_parms

Modified: head/lib/libc/rpc/auth_unix.c
==============================================================================
--- head/lib/libc/rpc/auth_unix.c	Thu Oct  4 03:59:45 2012	(r241180)
+++ head/lib/libc/rpc/auth_unix.c	Thu Oct  4 04:15:18 2012	(r241181)
@@ -94,10 +94,10 @@ struct audata {
 AUTH *
 authunix_create(machname, uid, gid, len, aup_gids)
 	char *machname;
-	uid_t uid;
-	gid_t gid;
+	u_int uid;
+	u_int gid;
 	int len;
-	gid_t *aup_gids;
+	u_int *aup_gids;
 {
 	struct authunix_parms aup;
 	char mymem[MAX_AUTH_BYTES];
@@ -207,6 +207,7 @@ authunix_create_default()
 		abort();
 	if (ngids > NGRPS)
 		ngids = NGRPS;
+	/* XXX: interface problem; we should translate from uid_t and gid_t */
 	auth = authunix_create(machname, uid, gid, ngids, gids);
 	free(gids);
 	return (auth);

Modified: head/lib/libc/rpc/authunix_prot.c
==============================================================================
--- head/lib/libc/rpc/authunix_prot.c	Thu Oct  4 03:59:45 2012	(r241180)
+++ head/lib/libc/rpc/authunix_prot.c	Thu Oct  4 04:15:18 2012	(r241181)
@@ -60,7 +60,7 @@ xdr_authunix_parms(xdrs, p)
 	XDR *xdrs;
 	struct authunix_parms *p;
 {
-	gid_t **paup_gids;
+	u_int **paup_gids;
 
 	assert(xdrs != NULL);
 	assert(p != NULL);
@@ -72,7 +72,7 @@ xdr_authunix_parms(xdrs, p)
 	    xdr_u_int(xdrs, &(p->aup_uid)) &&
 	    xdr_u_int(xdrs, &(p->aup_gid)) &&
 	    xdr_array(xdrs, (char **) paup_gids,
-	    &(p->aup_len), NGRPS, sizeof(gid_t), (xdrproc_t)xdr_int) ) {
+	    &(p->aup_len), NGRPS, sizeof(u_int), (xdrproc_t)xdr_u_int) ) {
 		return (TRUE);
 	}
 	return (FALSE);

Modified: head/lib/libc/rpc/rpc_soc.3
==============================================================================
--- head/lib/libc/rpc/rpc_soc.3	Thu Oct  4 03:59:45 2012	(r241180)
+++ head/lib/libc/rpc/rpc_soc.3	Thu Oct  4 04:15:18 2012	(r241181)
@@ -148,7 +148,7 @@ default authentication used by
 .Ft "AUTH *"
 .Xc
 .It Xo
-.Fn authunix_create "char *host" "uid_t uid" "gid_t gid" "int len" "gid_t *aup_gids"
+.Fn authunix_create "char *host" "u_int uid" "u_int gid" "int len" "u_int *aup_gids"
 .Xc
 .Pp
 Create and return an

Modified: head/lib/libc/rpc/svc_auth_unix.c
==============================================================================
--- head/lib/libc/rpc/svc_auth_unix.c	Thu Oct  4 03:59:45 2012	(r241180)
+++ head/lib/libc/rpc/svc_auth_unix.c	Thu Oct  4 04:15:18 2012	(r241181)
@@ -68,7 +68,7 @@ _svcauth_unix(rqst, msg)
 	struct area {
 		struct authunix_parms area_aup;
 		char area_machname[MAX_MACHINE_NAME+1];
-		gid_t area_gids[NGRPS];
+		u_int area_gids[NGRPS];
 	} *area;
 	u_int auth_len;
 	size_t str_len, gid_len;

Modified: head/sys/rpc/auth.h
==============================================================================
--- head/sys/rpc/auth.h	Thu Oct  4 03:59:45 2012	(r241180)
+++ head/sys/rpc/auth.h	Thu Oct  4 04:15:18 2012	(r241181)
@@ -234,17 +234,17 @@ __END_DECLS
  * System style authentication
  * AUTH *authunix_create(machname, uid, gid, len, aup_gids)
  *	char *machname;
- *	uid_t uid;
- *	gid_t gid;
+ *	u_int uid;
+ *	u_int gid;
  *	int len;
- *	gid_t *aup_gids;
+ *	u_int *aup_gids;
  */
 __BEGIN_DECLS
 #ifdef _KERNEL
 struct ucred;
 extern AUTH *authunix_create(struct ucred *);
 #else
-extern AUTH *authunix_create(char *, uid_t, gid_t, int, gid_t *);
+extern AUTH *authunix_create(char *, u_int, u_int, int, u_int *);
 extern AUTH *authunix_create_default(void);	/* takes no parameters */
 #endif
 extern AUTH *authnone_create(void);		/* takes no parameters */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210040415.q944FJWK059470>