aboutsummaryrefslogtreecommitdiff
path: root/sunrpc/xdr.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-07-14 07:23:50 +0000
committerUlrich Drepper <drepper@redhat.com>2000-07-14 07:23:50 +0000
commitf218b5f57242863c36eae65d926d4ee545994351 (patch)
treeb8864837a286aaeb3e6226f9c9a95cde8d387077 /sunrpc/xdr.c
parentca3c01356495ebfbb315c2984dda8eba88467597 (diff)
downloadglibc-f218b5f57242863c36eae65d926d4ee545994351.zip
glibc-f218b5f57242863c36eae65d926d4ee545994351.tar.gz
glibc-f218b5f57242863c36eae65d926d4ee545994351.tar.bz2
Update.
2000-07-14 Ulrich Drepper <drepper@redhat.com> * sunrpc/xdr.c (xdr_u_long): Handle reading of unsigned long on 64-bit architecture correctly [PR libc/1794].
Diffstat (limited to 'sunrpc/xdr.c')
-rw-r--r--sunrpc/xdr.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
index 0cb5f25..e5d706d 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -181,7 +181,15 @@ xdr_u_long (XDR *xdrs, u_long *ulp)
switch (xdrs->x_op)
{
case XDR_DECODE:
- return XDR_GETLONG (xdrs, (long *) ulp);
+ {
+ long int tmp;
+
+ if (XDR_GETLONG (xdrs, &tmp) == FALSE)
+ return FALSE;
+
+ *ulp = (uint32_t) tmp;
+ return TRUE;
+ }
case XDR_ENCODE:
return XDR_PUTLONG (xdrs, (long *) ulp);