diff options
Diffstat (limited to 'sunrpc/authuxprot.c')
-rw-r--r-- | sunrpc/authuxprot.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/sunrpc/authuxprot.c b/sunrpc/authuxprot.c index a60d99a57b..9b21ce195e 100644 --- a/sunrpc/authuxprot.c +++ b/sunrpc/authuxprot.c @@ -6,23 +6,23 @@ * may copy or modify Sun RPC without charge, but are not authorized * to license or distribute it to anyone else except as part of a product or * program developed by the user. - * + * * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * + * * Sun RPC is provided with no support and without any obligation on the * part of Sun Microsystems, Inc. to assist in its use, correction, * modification or enhancement. - * + * * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC * OR ANY PART THEREOF. - * + * * In no event will Sun Microsystems, Inc. be liable for any lost revenue * or profits or other special, indirect and consequential damages, even if * Sun has been advised of the possibility of such damages. - * + * * Sun Microsystems, Inc. * 2550 Garcia Avenue * Mountain View, California 94043 @@ -55,12 +55,17 @@ xdr_authunix_parms(xdrs, p) if (xdr_u_long(xdrs, &(p->aup_time)) && xdr_string(xdrs, &(p->aup_machname), MAX_MACHINE_NAME) - && xdr_int(xdrs, &(p->aup_uid)) - && xdr_int(xdrs, &(p->aup_gid)) - && xdr_array(xdrs, (caddr_t *)&(p->aup_gids), - &(p->aup_len), NGRPS, sizeof(int), xdr_int) ) { + && (sizeof (uid_t) == sizeof (short int) + ? xdr_u_short(xdrs, (u_short *) &(p->aup_uid)) + : xdr_u_int(xdrs, (u_int *) &(p->aup_uid))) + && (sizeof (gid_t) == sizeof (short int) + ? xdr_u_short(xdrs, (u_short *) &(p->aup_gid)) + : xdr_u_int(xdrs, (u_int *) &(p->aup_gid))) + && xdr_array(xdrs, (caddr_t *)&(p->aup_gids), + &(p->aup_len), NGRPS, sizeof(gid_t), + (sizeof (gid_t) == sizeof (short int) + ? xdr_u_short : xdr_u_int)) ) { return (TRUE); } return (FALSE); } - |