summaryrefslogtreecommitdiff
path: root/sunrpc/xdr_mem.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-10-25 19:13:42 +0000
committerJakub Jelinek <jakub@redhat.com>2006-10-25 19:13:42 +0000
commit21cb7ca55c2fdd7e9aca6c7a80ae0d7ca4f6c7da (patch)
tree9bce2d28d077684abe0904fdfb3974e06ceb29f6 /sunrpc/xdr_mem.c
parent16d1b47b4f3f9ae13535ea7a2c02bd207c069d5c (diff)
Updated to fedora-glibc-20061025T1857cvs/fedora-glibc-2_5_90-1
Diffstat (limited to 'sunrpc/xdr_mem.c')
-rw-r--r--sunrpc/xdr_mem.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sunrpc/xdr_mem.c b/sunrpc/xdr_mem.c
index e3167de040..7b1261bbae 100644
--- a/sunrpc/xdr_mem.c
+++ b/sunrpc/xdr_mem.c
@@ -177,13 +177,15 @@ xdrmem_setpos (xdrs, pos)
{
caddr_t newaddr = xdrs->x_base + pos;
caddr_t lastaddr = xdrs->x_private + xdrs->x_handy;
+ size_t handy = lastaddr - newaddr;
- if ((long) newaddr > (long) lastaddr
- || (UINT_MAX < LONG_MAX
- && (long) UINT_MAX < (long) lastaddr - (long) newaddr))
+ if (newaddr > lastaddr
+ || newaddr < xdrs->x_base
+ || handy != (u_int) handy)
return FALSE;
+
xdrs->x_private = newaddr;
- xdrs->x_handy = (long) lastaddr - (long) newaddr;
+ xdrs->x_handy = (u_int) handy;
return TRUE;
}