|
@@ -1005,7 +1005,7 @@ static __be32
|
|
nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp,
|
|
nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp,
|
|
struct nfsd4_exchange_id *exid)
|
|
struct nfsd4_exchange_id *exid)
|
|
{
|
|
{
|
|
- int dummy;
|
|
|
|
|
|
+ int dummy, tmp;
|
|
DECODE_HEAD;
|
|
DECODE_HEAD;
|
|
|
|
|
|
READ_BUF(NFS4_VERIFIER_SIZE);
|
|
READ_BUF(NFS4_VERIFIER_SIZE);
|
|
@@ -1053,15 +1053,23 @@ nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp,
|
|
|
|
|
|
/* ssp_hash_algs<> */
|
|
/* ssp_hash_algs<> */
|
|
READ_BUF(4);
|
|
READ_BUF(4);
|
|
- READ32(dummy);
|
|
|
|
- READ_BUF(dummy);
|
|
|
|
- p += XDR_QUADLEN(dummy);
|
|
|
|
|
|
+ READ32(tmp);
|
|
|
|
+ while (tmp--) {
|
|
|
|
+ READ_BUF(4);
|
|
|
|
+ READ32(dummy);
|
|
|
|
+ READ_BUF(dummy);
|
|
|
|
+ p += XDR_QUADLEN(dummy);
|
|
|
|
+ }
|
|
|
|
|
|
/* ssp_encr_algs<> */
|
|
/* ssp_encr_algs<> */
|
|
READ_BUF(4);
|
|
READ_BUF(4);
|
|
- READ32(dummy);
|
|
|
|
- READ_BUF(dummy);
|
|
|
|
- p += XDR_QUADLEN(dummy);
|
|
|
|
|
|
+ READ32(tmp);
|
|
|
|
+ while (tmp--) {
|
|
|
|
+ READ_BUF(4);
|
|
|
|
+ READ32(dummy);
|
|
|
|
+ READ_BUF(dummy);
|
|
|
|
+ p += XDR_QUADLEN(dummy);
|
|
|
|
+ }
|
|
|
|
|
|
/* ssp_window and ssp_num_gss_handles */
|
|
/* ssp_window and ssp_num_gss_handles */
|
|
READ_BUF(8);
|
|
READ_BUF(8);
|