nfsd4: zero op arguments beyond the 8th compound op
authorJ. Bruce Fields <bfields@redhat.com>
Thu, 17 Jul 2014 20:20:39 +0000 (16:20 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 17 Jul 2014 20:20:39 +0000 (16:20 -0400)
commit5d6031ca742f9f07b9c9d9322538619f3bd155ac
treef8913f5ae79a3bd2137d03b82dc7822605ec4728
parentae4b884fc6316b3190be19448cea24b020c1cad6
nfsd4: zero op arguments beyond the 8th compound op

The first 8 ops of the compound are zeroed since they're a part of the
argument that's zeroed by the

memset(rqstp->rq_argp, 0, procp->pc_argsize);

in svc_process_common().  But we handle larger compounds by allocating
the memory on the fly in nfsd4_decode_compound().  Other than code
recently fixed by 01529e3f8179 "NFSD: Fix memory leak in encoding denied
lock", I don't know of any examples of code depending on this
initialization. But it definitely seems possible, and I'd rather be
safe.

Compounds this long are unusual so I'm much more worried about failure
in this poorly tested cases than about an insignificant performance hit.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4xdr.c