xdr: Len can never be negative
[openafs.git] / src / rx / xdr_mem.c
index a489f6b..ae849f5 100644 (file)
@@ -5,23 +5,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
 #ifdef KERNEL
 # include "afs/sysincludes.h"
 #else
-# include <string.h>
+# include <roken.h>
 # include <limits.h>
-# ifndef AFS_NT40_ENV
-#  include <netinet/in.h>
-# endif
 #endif
 
 #include "xdr.h"
@@ -62,11 +59,7 @@ static afs_int32 *xdrmem_inline(XDR *, u_int);
 static void xdrmem_destroy(XDR *);
 
 static struct xdr_ops xdrmem_ops = {
-#if defined(AFS_NT40_ENV) || defined(__SUNPRO_C) || (defined(AFS_SGI_ENV)  && !defined(__c99))
-#ifdef AFS_XDR_64BITOPS
-    NULL,
-    NULL,
-#endif
+#ifndef HAVE_STRUCT_LABEL_SUPPORT
     /* Windows does not support labeled assigments */
     xdrmem_getint32,    /* deserialize an afs_int32 */
     xdrmem_putint32,    /* serialize an afs_int32 */
@@ -75,12 +68,8 @@ static struct xdr_ops xdrmem_ops = {
     xdrmem_getpos,      /* get offset in the stream: not supported. */
     xdrmem_setpos,      /* set offset in the stream: not supported. */
     xdrmem_inline,      /* prime stream for inline macros */
-    xdrmem_destroy      /* destroy stream */
+    xdrmem_destroy,     /* destroy stream */
 #else
-#ifdef AFS_XDR_64BITOPS
-    .x_getint64 = NULL,
-    .x_putint64 = NULL,
-#endif
     .x_getint32 = xdrmem_getint32,
     .x_putint32 = xdrmem_putint32,
     .x_getbytes = xdrmem_getbytes,
@@ -94,7 +83,7 @@ static struct xdr_ops xdrmem_ops = {
 
 /*
  * The procedure xdrmem_create initializes a stream descriptor for a
- * memory buffer.  
+ * memory buffer.
  */
 void
 xdrmem_create(XDR * xdrs, caddr_t addr, u_int size, enum xdr_op op)
@@ -182,7 +171,7 @@ xdrmem_inline(XDR *xdrs, u_int len)
 {
     afs_int32 *buf = 0;
 
-    if (len >= 0 && xdrs->x_handy >= len) {
+    if (xdrs->x_handy >= len) {
        xdrs->x_handy -= len;
        buf = (afs_int32 *) xdrs->x_private;
        xdrs->x_private += len;