NFS4: fix cb_recallany decode error
Subsystems (2)
PATCH 1/1 NFS4: fix cb_recallany decode error
craa_type_mask is bitmap4 per RFC5661. We need to expect a length before extracting bitmap value.
Cc Alexandros Batsakis <[email protected]>
Signed-off-by Peng Tao <[email protected]>
--- fs/nfs/callback_xdr.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
fs/nfs/callback_xdr.c +6 -5
@@ -488,17 +488,18 @@ static __be32 decode_recallany_args(struct svc_rqst *rqstp,struct xdr_stream *xdr, struct cb_recallanyargs *args) { - __be32 *p; + uint32_t bitmap[2]; +__be32 *p, status; args->craa_addr =svc_addr (rqstp); p =read_buf (xdr,4 );if (unlikely (p ==NULL ))return htonl (NFS4ERR_BADXDR ); args->craa_objs_to_keep =ntohl (*p++); - p =read_buf (xdr,4 ); -if (unlikely (p ==NULL )) -return htonl (NFS4ERR_BADXDR ); - args->craa_type_mask =ntohl (*p); + status =decode_bitmap (xdr, bitmap); +if (unlikely (status)) +return status; + args->craa_type_mask = bitmap[0 ];return 0 ; }
Signature · 1 line
1.7.1.262.g5ef3d