mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
IB/hfi1: Validate fault injection opcode user input
commit5f90677ed3upstream. The opcode range for fault injection from user should be validated before it is applied to the fault->opcodes[] bitmap to avoid out-of-bound error. Cc: <stable@vger.kernel.org> Fixes:a74d5307ca("IB/hfi1: Rework fault injection machinery") Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Kaike Wan <kaike.wan@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
17027034a4
commit
7cc9c99309
@@ -153,6 +153,7 @@ static ssize_t fault_opcodes_write(struct file *file, const char __user *buf,
|
||||
char *dash;
|
||||
unsigned long range_start, range_end, i;
|
||||
bool remove = false;
|
||||
unsigned long bound = 1U << BITS_PER_BYTE;
|
||||
|
||||
end = strchr(ptr, ',');
|
||||
if (end)
|
||||
@@ -178,6 +179,10 @@ static ssize_t fault_opcodes_write(struct file *file, const char __user *buf,
|
||||
BITS_PER_BYTE);
|
||||
break;
|
||||
}
|
||||
/* Check the inputs */
|
||||
if (range_start >= bound || range_end >= bound)
|
||||
break;
|
||||
|
||||
for (i = range_start; i <= range_end; i++) {
|
||||
if (remove)
|
||||
clear_bit(i, fault->opcodes);
|
||||
|
||||
Reference in New Issue
Block a user