Apply XDR fix for SunRPC, even though our code is not affected
authorwarlord <warlord@cb58f699-b61c-0410-a6fe-9272a202ed29>
Thu, 20 Mar 2003 21:51:44 +0000 (21:51 +0000)
committerwarlord <warlord@cb58f699-b61c-0410-a6fe-9272a202ed29>
Thu, 20 Mar 2003 21:51:44 +0000 (21:51 +0000)
since we don't use these functions.

git-svn-id: https://svn.middleware.georgetown.edu/cpp-sp/trunk@345 cb58f699-b61c-0410-a6fe-9272a202ed29

oncrpc/rpc/xdr.h
oncrpc/xdr_mem.c

index 814b8da..e633814 100644 (file)
@@ -136,7 +136,7 @@ typedef struct {
        caddr_t         x_public;       /* users' data */
        caddr_t         x_private;      /* pointer to private data */
        caddr_t         x_base;         /* private used for position info */
-       int             x_handy;        /* extra private word */
+       u_int           x_handy;        /* extra private word */
 } XDR;
 
 /*
index d5b4b22..0a96509 100644 (file)
@@ -113,8 +113,9 @@ xdrmem_getlong(xdrs, lp)
        long *lp;
 {
 
-       if ((xdrs->x_handy -= sizeof(long)) < 0)
+       if (xdrs->x_handy < sizeof(long))
                return (FALSE);
+       xdrs->x_handy -= sizeof(long);
        *lp = (long)ntohl((u_long)(*((long *)(xdrs->x_private))));
        xdrs->x_private += sizeof(long);
        return (TRUE);
@@ -126,8 +127,9 @@ xdrmem_putlong(xdrs, lp)
        long *lp;
 {
 
-       if ((xdrs->x_handy -= sizeof(long)) < 0)
+       if (xdrs->x_handy < sizeof(long))
                return (FALSE);
+       xdrs->x_handy -= sizeof(long);
        *(long *)xdrs->x_private = (long)htonl((u_long)(*lp));
        xdrs->x_private += sizeof(long);
        return (TRUE);
@@ -140,8 +142,9 @@ xdrmem_getbytes(xdrs, addr, len)
        register u_int len;
 {
 
-       if ((xdrs->x_handy -= len) < 0)
+       if (xdrs->x_handy < len)
                return (FALSE);
+       xdrs->x_handy -= len;
        bcopy(xdrs->x_private, addr, len);
        xdrs->x_private += len;
        return (TRUE);
@@ -154,8 +157,9 @@ xdrmem_putbytes(xdrs, addr, len)
        register u_int len;
 {
 
-       if ((xdrs->x_handy -= len) < 0)
+       if (xdrs->x_handy < len)
                return (FALSE);
+       xdrs->x_handy -= len;
        bcopy(addr, xdrs->x_private, len);
        xdrs->x_private += len;
        return (TRUE);
@@ -177,10 +181,10 @@ xdrmem_setpos(xdrs, pos)
        register caddr_t newaddr = xdrs->x_base + pos;
        register caddr_t lastaddr = xdrs->x_private + xdrs->x_handy;
 
-       if ((long)newaddr > (long)lastaddr)
+       if (newaddr > lastaddr)
                return (FALSE);
        xdrs->x_private = newaddr;
-       xdrs->x_handy = (int)lastaddr - (int)newaddr;
+       xdrs->x_handy = (u_int)(lastaddr - newaddr);
        return (TRUE);
 }