From: Ralf Hubert Date: Fri, 1 Jul 2016 11:19:51 +0000 (+0200) Subject: net: Fix incorrect RPC packets on 64-bit systems X-Git-Tag: v2016.07~13^2~1 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e4ead4a21db266c84051279ed4ceeab72981df8c;p=oweals%2Fu-boot.git net: Fix incorrect RPC packets on 64-bit systems This patch fixes incorrect RPC packet layout caused by 'long' type size difference on 64 and 32-bit architectures. Signed-off-by: Ralf Hubert Acked-by: Joe Hershberger --- diff --git a/net/nfs.c b/net/nfs.c index f60a037818..4a5a1ab2a9 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -132,7 +132,7 @@ static char *dirname(char *path) /************************************************************************** RPC_ADD_CREDENTIALS - Add RPC authentication/verifier entries **************************************************************************/ -static long *rpc_add_credentials(long *p) +static uint32_t *rpc_add_credentials(uint32_t *p) { int hl; int hostnamelen; @@ -241,7 +241,7 @@ static void nfs_mount_req(char *path) pathlen = strlen(path); p = &(data[0]); - p = (uint32_t *)rpc_add_credentials((long *)p); + p = rpc_add_credentials(p); *p++ = htonl(pathlen); if (pathlen & 3) @@ -268,7 +268,7 @@ static void nfs_umountall_req(void) return; p = &(data[0]); - p = (uint32_t *)rpc_add_credentials((long *)p); + p = rpc_add_credentials(p); len = (uint32_t *)p - (uint32_t *)&(data[0]); @@ -289,7 +289,7 @@ static void nfs_readlink_req(void) int len; p = &(data[0]); - p = (uint32_t *)rpc_add_credentials((long *)p); + p = rpc_add_credentials(p); memcpy(p, filefh, NFS_FHSIZE); p += (NFS_FHSIZE / 4); @@ -312,7 +312,7 @@ static void nfs_lookup_req(char *fname) fnamelen = strlen(fname); p = &(data[0]); - p = (uint32_t *)rpc_add_credentials((long *)p); + p = rpc_add_credentials(p); memcpy(p, dirfh, NFS_FHSIZE); p += (NFS_FHSIZE / 4); @@ -337,7 +337,7 @@ static void nfs_read_req(int offset, int readlen) int len; p = &(data[0]); - p = (uint32_t *)rpc_add_credentials((long *)p); + p = rpc_add_credentials(p); memcpy(p, filefh, NFS_FHSIZE); p += (NFS_FHSIZE / 4);