* xdr_mem.c: Do not assume that XDR x_private field is char *
authorEzra Peisach <epeisach@mit.edu>
Thu, 19 Jul 2001 20:59:13 +0000 (20:59 +0000)
committerEzra Peisach <epeisach@mit.edu>
Thu, 19 Jul 2001 20:59:13 +0000 (20:59 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13621 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/rpc/ChangeLog
src/lib/rpc/xdr_mem.c

index 92c9c9a07255dfa8d707a4340609003b5a6233ed..e2dcd5a3c8b26f34ded005092eb86c02788a9b03 100644 (file)
@@ -1,5 +1,7 @@
 2001-07-19  Ezra Peisach  <epeisach@mit.edu>
 
+       * xdr_mem.c: Do not assume that XDR x_private field is char *.
+
        * auth.h: AUTH ah_private structure element changed to void *. 
 
        * clnt.h: CLIENT cl_private structure element changed to type void *. 
index 885d724e6cf743b9e9caaef81420c096dd7488df..18265da817817ab1ea66bc43008fb6bbc0d9be08 100644 (file)
@@ -102,7 +102,7 @@ xdrmem_getlong(xdrs, lp)
        if ((xdrs->x_handy -= sizeof(rpc_int32)) < 0)
                return (FALSE);
        *lp = (long)ntohl(*((rpc_u_int32 *)(xdrs->x_private)));
-       xdrs->x_private += sizeof(rpc_int32);
+       xdrs->x_private = (char *)xdrs->x_private + sizeof(rpc_int32);
        return (TRUE);
 }
 
@@ -115,7 +115,7 @@ xdrmem_putlong(xdrs, lp)
        if ((xdrs->x_handy -= sizeof(rpc_int32)) < 0)
                return (FALSE);
        *(rpc_int32 *)xdrs->x_private = (rpc_int32)htonl((rpc_u_int32)(*lp));
-       xdrs->x_private += sizeof(rpc_int32);
+       xdrs->x_private = (char *)xdrs->x_private + sizeof(rpc_int32);
        return (TRUE);
 }
 
@@ -129,7 +129,7 @@ xdrmem_getbytes(xdrs, addr, len)
        if ((xdrs->x_handy -= len) < 0)
                return (FALSE);
        memmove(addr, xdrs->x_private, len);
-       xdrs->x_private += len;
+       xdrs->x_private = (char *)xdrs->x_private + len;
        return (TRUE);
 }
 
@@ -143,7 +143,7 @@ xdrmem_putbytes(xdrs, addr, len)
        if ((xdrs->x_handy -= len) < 0)
                return (FALSE);
        memmove(xdrs->x_private, addr, len);
-       xdrs->x_private += len;
+       xdrs->x_private = (char *)xdrs->x_private + len;
        return (TRUE);
 }
 
@@ -164,7 +164,7 @@ xdrmem_setpos(xdrs, pos)
        unsigned int pos;
 {
        register caddr_t newaddr = xdrs->x_base + pos;
-       register caddr_t lastaddr = xdrs->x_private + xdrs->x_handy;
+       register caddr_t lastaddr = (char *) xdrs->x_private + xdrs->x_handy;
 
        if ((long)newaddr > (long)lastaddr)
                return (FALSE);
@@ -183,7 +183,7 @@ xdrmem_inline(xdrs, len)
        if (xdrs->x_handy >= len) {
                xdrs->x_handy -= len;
                buf = (rpc_int32 *) xdrs->x_private;
-               xdrs->x_private += len;
+               xdrs->x_private = (char *)xdrs->x_private + len;
        }
        return (buf);
 }