On Sun, Jun 24, 2018 at 01:57:51PM -0600, Jason Gunthorpe wrote:
On Sun, Jun 24, 2018 at 11:23:47AM +0300, Leon Romanovsky wrote:
quoted
From: Leon Romanovsky <redacted>
Number of specs is provided by user and in valid case can be equal to zero.
Such argument causes to call to kcalloc() with zero-length request and in
return the ZERO_SIZE_PTR is assigned. This pointer is different from NULL
and makes various if (..) checks to success.
The one seems really weird. There is nothing wrong with ZERO_SIZE_PTR,
but this description and fix suggest that something did
ptr = kalloc(0);
ptr[0] = ...;
Which is not allowed of course. Doesn't this mean there is also a
missing range check someplace?
I don't know, this issue was found during code review of
ib_uvrebs_ex_create_flow(), may or may not be real issue.
Thanks
Jason