* sunrpc/xdr_stdio.c (xdrstdio_getlong), sunrpc/xdr_rec.c
(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
appropriate sign-extension is performed on machines with
sizeof(long) > 4.
if ((xdrs->x_handy -= 4) < 0)
return (FALSE);
if ((xdrs->x_handy -= 4) < 0)
return (FALSE);
- *lp = (long)ntohl((u_long)(*((int32_t *)(xdrs->x_private))));
+ *lp = (int32_t) ntohl((*((int32_t *)(xdrs->x_private))));
xdrs->x_private += 4;
return (TRUE);
}
xdrs->x_private += 4;
return (TRUE);
}
if (rstrm->fbtbc >= BYTES_PER_XDR_UNIT &&
rstrm->in_boundry - (char *) buflp >= BYTES_PER_XDR_UNIT)
{
if (rstrm->fbtbc >= BYTES_PER_XDR_UNIT &&
rstrm->in_boundry - (char *) buflp >= BYTES_PER_XDR_UNIT)
{
+ *lp = (int32_t) ntohl(*buflp);
rstrm->fbtbc -= BYTES_PER_XDR_UNIT;
rstrm->in_finger += BYTES_PER_XDR_UNIT;
} else {
if (! xdrrec_getbytes(xdrs, (caddr_t) &mylong,
BYTES_PER_XDR_UNIT))
return FALSE;
rstrm->fbtbc -= BYTES_PER_XDR_UNIT;
rstrm->in_finger += BYTES_PER_XDR_UNIT;
} else {
if (! xdrrec_getbytes(xdrs, (caddr_t) &mylong,
BYTES_PER_XDR_UNIT))
return FALSE;
+ *lp = (int32_t) ntohl(mylong);
if (fread((caddr_t)&mycopy, 4, 1, (FILE *)xdrs->x_private) != 1)
return (FALSE);
if (fread((caddr_t)&mycopy, 4, 1, (FILE *)xdrs->x_private) != 1)
return (FALSE);
- *(int32_t*)lp = ntohl(mycopy);
+ *lp = (int32_t) ntohl(mycopy);