mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 05:02:12 +00:00
NFSv4: check return value of xdr_inline_decode
Function xdr_inline_decode() will return a NULL pointer if the input buffer does not have long enough buffer to decode nbytes of data. However, in function decode_op_map(), the return value of xdr_inline_decode() is not validated before it is used. This patch adds a check to the return value of xdr_inline_decode(). Signed-off-by: Pan Bian <bianpan2016@163.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
209aa23083
commit
4edabfd7d0
@ -5570,6 +5570,8 @@ static int decode_op_map(struct xdr_stream *xdr, struct nfs4_op_map *op_map)
|
||||
unsigned int i;
|
||||
|
||||
p = xdr_inline_decode(xdr, 4);
|
||||
if (!p)
|
||||
return -EIO;
|
||||
bitmap_words = be32_to_cpup(p++);
|
||||
if (bitmap_words > NFS4_OP_MAP_NUM_WORDS)
|
||||
return -EIO;
|
||||
|
Loading…
Reference in New Issue
Block a user