In the Linux kernel, the following vulnerability has been resolved: svcrdma: Address an integer overflow Dan Carpenter reports: > Commit 78147ca8b4a9 ("svcrdma: Add a "parsed chunk list" data > structure") from Jun 22, 2020 (linux-next), leads to the following > Smatch static checker warning: > > net/sunrpc/xprtrdma/svcrdmarecvfrom.c:498 xdrcheckwritechunk() > warn: potential user controlled sizeof overflow 'segcount * 4 * 4' > > net/sunrpc/xprtrdma/svcrdmarecvfrom.c > 488 static bool xdrcheckwritechunk(struct svcrdmarecvctxt *rctxt) > 489 { > 490 u32 segcount; > 491 _be32 p; > 492 > 493 if (xdr_stream_decode_u32(&rctxt->rc_stream, &segcount)) > ^^^^^^^^ > > 494 return false; > 495 > 496 / A bogus segcount causes this buffer overflow check to fail. / > 497 p = xdr_inline_decode(&rctxt->rc_stream, > --> 498 segcount * rpcrdma_segment_maxsz * sizeof(p)); > > > segcount is an untrusted u32. On 32bit systems anything >= SIZEMAX / 16 will > have an integer overflow and some those values will be accepted by > xdrinline_decode().