From: Dan Carpenter Date: Tue, 15 Mar 2022 15:34:06 +0000 (+0300) Subject: NFSD: prevent integer overflow on 32 bit systems X-Git-Tag: v6.6.17~7751^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=23a9dbbe0faf124fc4c139615633b9d12a3a89ef;p=platform%2Fkernel%2Flinux-rpi.git NFSD: prevent integer overflow on 32 bit systems On a 32 bit system, the "len * sizeof(*p)" operation can have an integer overflow. Cc: stable@vger.kernel.org Signed-off-by: Dan Carpenter Signed-off-by: Chuck Lever --- diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h index b519609..4417f66 100644 --- a/include/linux/sunrpc/xdr.h +++ b/include/linux/sunrpc/xdr.h @@ -731,6 +731,8 @@ xdr_stream_decode_uint32_array(struct xdr_stream *xdr, if (unlikely(xdr_stream_decode_u32(xdr, &len) < 0)) return -EBADMSG; + if (len > SIZE_MAX / sizeof(*p)) + return -EBADMSG; p = xdr_inline_decode(xdr, len * sizeof(*p)); if (unlikely(!p)) return -EBADMSG;