projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
184416d
)
NFSD: prevent integer overflow on 32 bit systems
author
Dan Carpenter
<dan.carpenter@oracle.com>
Tue, 15 Mar 2022 15:34:06 +0000
(18:34 +0300)
committer
Chuck Lever
<chuck.lever@oracle.com>
Tue, 15 Mar 2022 16:24:18 +0000
(12:24 -0400)
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 <dan.carpenter@oracle.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
include/linux/sunrpc/xdr.h
patch
|
blob
|
history
diff --git
a/include/linux/sunrpc/xdr.h
b/include/linux/sunrpc/xdr.h
index b519609af1d020fa3676a59d652a6b9dcfe7d58f..4417f667c757e5e16be9d82b8696029687d30773 100644
(file)
--- 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;