diff options
| author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-05-04 11:40:16 +0000 | 
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-05-04 11:40:16 +0000 | 
| commit | 0f92020886a46f93cdd64dca50be0e4a1e1626c9 (patch) | |
| tree | a78c048c02feccedc9ea36a9b4169bd999975c65 /usr/src/lib/libnsl/rpc/xdr.c | |
| parent | fdfe9d092a94f3271359e9c6b68846276c58d119 (diff) | |
| parent | 22cc57556161a28b2141976ff578db2558def3e1 (diff) | |
| download | illumos-joyent-0f92020886a46f93cdd64dca50be0e4a1e1626c9.tar.gz | |
	[illumos-gate merge]
commit 22cc57556161a28b2141976ff578db2558def3e1
    8098 Some xdr_simple(3nsl) and xdr_complex(3nsl) functions can succeed for undefined xdrs->x_op values
commit bccbd30bb6d0c20635d3f23e8d63f3f8170d3c46
    8138 Improve manpage spelling
commit 719db50f9baba455978a31987e3e235ebd8a1592
    8142 bootadm: get_boot_cap() should test for both 32-bit and 64-bit kernel
commit 903134fe16f881063d995b98c1abaa8151f102b6
    8146 Update hwdata - 20170502
commit 1a96bf60a6b9227444199581bdccccf87e84b308
    8133 bootadm: is_ramdisk test is not functional
Diffstat (limited to 'usr/src/lib/libnsl/rpc/xdr.c')
| -rw-r--r-- | usr/src/lib/libnsl/rpc/xdr.c | 31 | 
1 files changed, 12 insertions, 19 deletions
| diff --git a/usr/src/lib/libnsl/rpc/xdr.c b/usr/src/lib/libnsl/rpc/xdr.c index 6d5095ff11..dd1314046c 100644 --- a/usr/src/lib/libnsl/rpc/xdr.c +++ b/usr/src/lib/libnsl/rpc/xdr.c @@ -33,8 +33,6 @@   * California.   */ -#pragma ident	"%Z%%M%	%I%	%E% SMI" -  /*   * Generic XDR routines implementation.   * @@ -383,12 +381,6 @@ xdr_opaque(XDR *xdrs, caddr_t cp, const uint_t cnt)  	char crud[BYTES_PER_XDR_UNIT];  	/* -	 * if no data we are done -	 */ -	if (cnt == 0) -		return (TRUE); - -	/*  	 * round byte count to full xdr units  	 */  	rndup = cnt % BYTES_PER_XDR_UNIT; @@ -488,7 +480,7 @@ xdr_netobj(XDR *xdrs, struct netobj *np)   */  bool_t  xdr_union(XDR *xdrs, enum_t *dscmp, char *unp, -		const struct xdr_discrim *choices, const xdrproc_t dfault) +    const struct xdr_discrim *choices, const xdrproc_t dfault)  {  	enum_t dscm; @@ -617,38 +609,39 @@ xdr_string(XDR *xdrs, char **cpp, const uint_t maxsize)  bool_t  xdr_hyper(XDR *xdrs, longlong_t *hp)  { -	if (xdrs->x_op == XDR_ENCODE) { +	switch (xdrs->x_op) { +	case XDR_ENCODE:  #if defined(_LONG_LONG_HTOL)  		if (XDR_PUTINT32(xdrs, (int *)hp) == TRUE)  			/* LINTED pointer cast */  			return (XDR_PUTINT32(xdrs, (int *)((char *)hp + -				BYTES_PER_XDR_UNIT))); +			    BYTES_PER_XDR_UNIT)));  #else  		/* LINTED pointer cast */  		if (XDR_PUTINT32(xdrs, (int *)((char *)hp + -				BYTES_PER_XDR_UNIT)) == TRUE) +		    BYTES_PER_XDR_UNIT)) == TRUE)  			return (XDR_PUTINT32(xdrs, (int32_t *)hp));  #endif  		return (FALSE); -	} - -	if (xdrs->x_op == XDR_DECODE) { +	case XDR_DECODE:  #if defined(_LONG_LONG_HTOL)  		if (XDR_GETINT32(xdrs, (int *)hp) == FALSE ||  		    /* LINTED pointer cast */  		    (XDR_GETINT32(xdrs, (int *)((char *)hp + -				BYTES_PER_XDR_UNIT)) == FALSE)) +		    BYTES_PER_XDR_UNIT)) == FALSE))  			return (FALSE);  #else  		/* LINTED pointer cast */  		if ((XDR_GETINT32(xdrs, (int *)((char *)hp + -				BYTES_PER_XDR_UNIT)) == FALSE) || -				(XDR_GETINT32(xdrs, (int *)hp) == FALSE)) +		    BYTES_PER_XDR_UNIT)) == FALSE) || +		    (XDR_GETINT32(xdrs, (int *)hp) == FALSE))  			return (FALSE);  #endif  		return (TRUE); +	case XDR_FREE: +		return (TRUE);  	} -	return (TRUE); +	return (FALSE);  }  bool_t | 
