IB/ipath: Fix potential buffer overrun in sending diag packet routine
authorDennis Dalessandro <dennis.dalessandro@intel.com>
Thu, 20 Feb 2014 16:02:53 +0000 (11:02 -0500)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 30 Apr 2014 15:23:22 +0000 (16:23 +0100)
commita9782df2240b10ebc8df587e5a7f574ef9f44f71
tree6a65ca9524b80bff69baa45eed16ef3dbef6e6da
parenta7bbda740718580d49fb5a7ccd950316d58970f7
IB/ipath: Fix potential buffer overrun in sending diag packet routine

commit a2cb0eb8a64adb29a99fd864013de957028f36ae upstream.

Guard against a potential buffer overrun.  The size to read from the
user is passed in, and due to the padding that needs to be taken into
account, as well as the place holder for the ICRC it is possible to
overflow the 32bit value which would cause more data to be copied from
user space than is allocated in the buffer.

Reported-by: Nico Golde <nico@ngolde.de>
Reported-by: Fabian Yamaguchi <fabs@goesec.de>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/infiniband/hw/ipath/ipath_diag.c