Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d49e0d5b authored by Trond Myklebust's avatar Trond Myklebust Committed by Trond Myklebust
Browse files

NFSv4/pnfs: Ensure pnfs_parse_lgopen() won't try to parse uninitialised data



We need to ensure that pnfs_parse_lgopen() doesn't try to parse a
struct nfs4_layoutget_res that was not filled by a successful call
to decode_layoutget(). This can happen if we performed a cached open,
or if either the OP_ACCESS or OP_GETATTR operations preceding the
OP_LAYOUTGET in the compound returned an error.

By initialising the 'status' field to NFS4ERR_DELAY, we ensure that
pnfs_parse_lgopen() won't try to interpret the structure.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 30ae2412
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -994,7 +994,8 @@ pnfs_alloc_init_layoutget_args(struct inode *ino,
	lgp->args.layout.pglen = max_pages * PAGE_SIZE;
	lgp->res.layoutp = &lgp->args.layout;


	/* Don't confuse uninitialised result and success */
	lgp->res.status = -NFS4ERR_DELAY;

	lgp->args.minlength = PAGE_SIZE;
	if (lgp->args.minlength > range->length)