summaryrefslogtreecommitdiffstats
path: root/lib/libc/xdr
diff options
context:
space:
mode:
authormbr <mbr@FreeBSD.org>2004-01-24 01:23:30 +0000
committermbr <mbr@FreeBSD.org>2004-01-24 01:23:30 +0000
commit44c47ce008799dc4b497d4272aebf7ca58a9012a (patch)
treed6dfed8c299d401b01f9f8b134312db3c0889ffc /lib/libc/xdr
parent6ee028691dd06ee6eb1b8bb5a0cb9fcde8776828 (diff)
downloadFreeBSD-src-44c47ce008799dc4b497d4272aebf7ca58a9012a.zip
FreeBSD-src-44c47ce008799dc4b497d4272aebf7ca58a9012a.tar.gz
When writing/reading longs use explicit 32bit temporary values.
MFNetBSD rev. 1.15 + rev 1.16 PR: bin/60901 Submitted by: Logan Gabriel <gersh@sonn.com> Obtained from: NetBSD
Diffstat (limited to 'lib/libc/xdr')
-rw-r--r--lib/libc/xdr/xdr_stdio.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libc/xdr/xdr_stdio.c b/lib/libc/xdr/xdr_stdio.c
index a8e10eb..103d240 100644
--- a/lib/libc/xdr/xdr_stdio.c
+++ b/lib/libc/xdr/xdr_stdio.c
@@ -113,10 +113,11 @@ xdrstdio_getlong(xdrs, lp)
XDR *xdrs;
long *lp;
{
+ u_int32_t temp;
- if (fread(lp, sizeof(int32_t), 1, (FILE *)xdrs->x_private) != 1)
+ if (fread(&temp, sizeof(int32_t), 1, (FILE *)xdrs->x_private) != 1)
return (FALSE);
- *lp = (long)ntohl((u_int32_t)*lp);
+ *lp = (long)ntohl(temp);
return (TRUE);
}
@@ -125,7 +126,7 @@ xdrstdio_putlong(xdrs, lp)
XDR *xdrs;
const long *lp;
{
- long mycopy = (long)htonl((u_int32_t)*lp);
+ int32_t mycopy = htonl((u_int32_t)*lp);
if (fwrite(&mycopy, sizeof(int32_t), 1, (FILE *)xdrs->x_private) != 1)
return (FALSE);
OpenPOWER on IntegriCloud