Selaa lähdekoodia

NFSD: fix decode_cb_sequence4resok

Fix bug introduced in patch
85a56480 NFSD: Update XDR decoders in NFSv4 callback client

Although decode_cb_sequence4resok ignores highest slotid and target highest slotid
it must account for their space in their xdr stream when calling xdr_inline_decode

Cc: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Benny Halevy 14 vuotta sitten
vanhempi
commit
2c9c8f36c3
1 muutettua tiedostoa jossa 1 lisäystä ja 1 poistoa
  1. 1 1
      fs/nfsd/nfs4callback.c

+ 1 - 1
fs/nfsd/nfs4callback.c

@@ -432,7 +432,7 @@ static int decode_cb_sequence4resok(struct xdr_stream *xdr,
 	 * If the server returns different values for sessionID, slotID or
 	 * If the server returns different values for sessionID, slotID or
 	 * sequence number, the server is looney tunes.
 	 * sequence number, the server is looney tunes.
 	 */
 	 */
-	p = xdr_inline_decode(xdr, NFS4_MAX_SESSIONID_LEN + 4 + 4);
+	p = xdr_inline_decode(xdr, NFS4_MAX_SESSIONID_LEN + 4 + 4 + 4 + 4);
 	if (unlikely(p == NULL))
 	if (unlikely(p == NULL))
 		goto out_overflow;
 		goto out_overflow;
 	memcpy(id.data, p, NFS4_MAX_SESSIONID_LEN);
 	memcpy(id.data, p, NFS4_MAX_SESSIONID_LEN);