summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/librpc/xdr_mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/librpc/xdr_mem.c')
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr_mem.c65
1 files changed, 31 insertions, 34 deletions
diff --git a/mdk-stage1/dietlibc/librpc/xdr_mem.c b/mdk-stage1/dietlibc/librpc/xdr_mem.c
index 0f137b676..c21121183 100644
--- a/mdk-stage1/dietlibc/librpc/xdr_mem.c
+++ b/mdk-stage1/dietlibc/librpc/xdr_mem.c
@@ -42,20 +42,20 @@ static char sccsid[] = "@(#)xdr_mem.c 1.19 87/08/11 Copyr 1984 Sun Micro";
*
*/
-
#include <rpc/types.h>
#include <rpc/xdr.h>
#include <netinet/in.h>
#include <string.h>
+#include <limits.h>
-static bool_t xdrmem_getlong(XDR*, long*);
-static bool_t xdrmem_putlong(XDR*, const long*);
-static bool_t xdrmem_getbytes();
-static bool_t xdrmem_putbytes();
-static unsigned int xdrmem_getpos();
-static bool_t xdrmem_setpos();
-static int32_t *xdrmem_inline(XDR*, unsigned int);
-static void xdrmem_destroy();
+static bool_t xdrmem_getlong (XDR *, long *);
+static bool_t xdrmem_putlong (XDR *, const long *);
+static bool_t xdrmem_getbytes (XDR *, char *, unsigned int);
+static bool_t xdrmem_putbytes (XDR *, const char *, unsigned int);
+static unsigned int xdrmem_getpos (const XDR *);
+static bool_t xdrmem_setpos (XDR *, unsigned int);
+static int32_t *xdrmem_inline (XDR *, unsigned int);
+static void xdrmem_destroy (XDR *);
static struct xdr_ops xdrmem_ops = {
xdrmem_getlong,
@@ -73,27 +73,22 @@ static struct xdr_ops xdrmem_ops = {
* The procedure xdrmem_create initializes a stream descriptor for a
* memory buffer.
*/
-void xdrmem_create(xdrs, addr, size, op)
-register XDR *xdrs;
-const char* addr;
-unsigned int size;
-enum xdr_op op;
+void
+xdrmem_create (XDR *xdrs, const char* addr, unsigned int size, enum xdr_op op)
{
-
xdrs->x_op = op;
xdrs->x_ops = &xdrmem_ops;
xdrs->x_private = xdrs->x_base = (char*)addr;
xdrs->x_handy = size;
}
-static void xdrmem_destroy( /*xdrs */ )
- /*XDR *xdrs; */
+static void
+xdrmem_destroy (XDR *xdrs)
{
}
-static bool_t xdrmem_getlong(xdrs, lp)
-register XDR *xdrs;
-long *lp;
+static bool_t
+xdrmem_getlong (XDR *xdrs, long *lp)
{
if (xdrs->x_handy < 4) return FALSE;
xdrs->x_handy -= 4;
@@ -103,18 +98,19 @@ long *lp;
return TRUE;
}
-static bool_t xdrmem_putlong(XDR* xdrs, const long* lp)
+static bool_t
+xdrmem_putlong (XDR *xdrs, const long *lp)
{
if (xdrs->x_handy < 4) return FALSE;
xdrs->x_handy -= 4;
*(int32_t *) xdrs->x_private = htonl(*lp);
- xdrs->x_private += sizeof(long);
-
+ xdrs->x_private += 4;
return (TRUE);
}
-static bool_t xdrmem_getbytes(XDR* xdrs, char* addr, unsigned int len)
+static bool_t
+xdrmem_getbytes (XDR *xdrs, char *addr, unsigned int len)
{
if (xdrs->x_handy < len) return FALSE;
xdrs->x_handy -= len;
@@ -123,7 +119,8 @@ static bool_t xdrmem_getbytes(XDR* xdrs, char* addr, unsigned int len)
return TRUE;
}
-static bool_t xdrmem_putbytes(XDR* xdrs, char* addr, unsigned int len)
+static bool_t
+xdrmem_putbytes (XDR *xdrs, const char *addr, unsigned int len)
{
if (xdrs->x_handy < len) return FALSE;
xdrs->x_handy -= len;
@@ -132,11 +129,10 @@ static bool_t xdrmem_putbytes(XDR* xdrs, char* addr, unsigned int len)
return (TRUE);
}
-static unsigned int xdrmem_getpos(xdrs)
-register XDR *xdrs;
+static unsigned int
+xdrmem_getpos (const XDR *xdrs)
{
-
- return ((unsigned int) xdrs->x_private - (unsigned int) xdrs->x_base);
+ return ((unsigned long) xdrs->x_private - (unsigned long) xdrs->x_base);
}
static bool_t xdrmem_setpos(xdrs, pos)
@@ -146,16 +142,17 @@ unsigned int pos;
register char* newaddr = xdrs->x_base + pos;
register char* lastaddr = xdrs->x_private + xdrs->x_handy;
- if ((long) newaddr > (long) lastaddr || (long)newaddr<(long)xdrs->x_base)
+ if ((long) newaddr > (long) lastaddr
+ || (UINT_MAX < LONG_MAX
+ && (long) UINT_MAX < (long) lastaddr - (long) newaddr))
return (FALSE);
xdrs->x_private = newaddr;
- xdrs->x_handy = (int) lastaddr - (int) newaddr;
+ xdrs->x_handy = (long) lastaddr - (long) newaddr;
return (TRUE);
}
-static int32_t *xdrmem_inline(xdrs, len)
-register XDR *xdrs;
-unsigned int len;
+static int32_t *
+xdrmem_inline (XDR *xdrs, unsigned int len)
{
int32_t *buf = 0;