linux/drivers/infiniband
Sebastian Sanchez 3e6c3b0fd5 IB/hfi1: Fix SGE length for misaligned PIO copy
When trying to align the source pointer and there's a byte carry
in an SGE copy, bytes are borrowed from the next quad-word X to
complete the required quad-word copy. Then, the SGE length is
reduced by the number of borrowed bytes. After this, if the
remaining number of bytes from quad-word X (extra bytes) is
greater than the new SGE length, the number of extra bytes needs
to be updated to the new SGE length. Otherwise, when the
SGE length gets updated again after the extra bytes are read to
create the new byte carry, it goes negative, which then becomes
a very large number as the SGE length is an unsigned integer.
This causes SGE buffer to be over-read.

Reviewed-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Sebastian Sanchez <sebastian.sanchez@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-09-02 14:26:55 -04:00
..
core IB/core: Fix use after free in send_leave function 2016-09-02 14:06:27 -04:00
hw IB/hfi1: Fix SGE length for misaligned PIO copy 2016-09-02 14:26:55 -04:00
sw IB/rdmvat: Fix double vfree() in rvt_create_qp() error path 2016-08-22 15:00:42 -04:00
ulp IB/ipoib: Fix memory corruption in ipoib cm mode connect flow 2016-09-02 14:07:38 -04:00
Kconfig Soft RoCE driver 2016-08-04 11:13:12 -04:00
Makefile IB/rdmavt: Create module framework and handle driver registration 2016-03-10 20:37:04 -05:00