[klibc] [patch] nfsmount fix rpc header length

maximilian attems
2007-06-24T22:18:13Z

nfsmount sends bad rpc header in portmap calls. The length in rpc header
should be only the length of  data without header (nfsmount sends the
length including 4 byte header). Portmap in Fedora 7 does not like this.
This change in sunrpc.c:rpc_header fixed it
see http://bugs.debian.org/428832

Signed-off-by: maximilian attems <max at stro.at>

--
bold statement: just compile tested yet, not nfs boot tested yet.


diff --git a/usr/kinit/nfsmount/sunrpc.c b/usr/kinit/nfsmount/sunrpc.c
index 915d412..6607cf7 100644
--- a/usr/kinit/nfsmount/sunrpc.c
+++ b/usr/kinit/nfsmount/sunrpc.c
@@ -55,7 +55,7 @@ static void rpc_header(struct client *clnt, struct rpc *rpc)
 {
 	(void)clnt;

-	rpc->call->hdr.frag_hdr = htonl(LAST_FRAG | rpc->call_len);
+	rpc->call->hdr.frag_hdr = htonl(LAST_FRAG | (rpc->call_len - 4));
 	rpc->call->hdr.udp.xid = lrand48();
 	rpc->call->hdr.udp.msg_type = htonl(RPC_CALL);
 	rpc->call->rpc_vers = htonl(2);