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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 6 May 2014 14:55:29 +0000 (07:55 -0700)
commita8cf970eeef276b222e7d68c0f8ef770de2b6f07
treeeb767efc50cdab1f1199ca158b254c6537818a5a
parentda05ff98dcc282ca0eebd849bc87594d6c28b506
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/infiniband/hw/ipath/ipath_diag.c