hpsa: guard against overflowing raid map array
authorStephen Cameron <stephenmcameron@gmail.com>
Fri, 23 Jan 2015 22:44:14 +0000 (16:44 -0600)
committerJames Bottomley <JBottomley@Parallels.com>
Mon, 2 Feb 2015 17:57:42 +0000 (09:57 -0800)
In the code that translates logical drive LBAs to physical
drive LBAs if we overflow the raid map disk data array we
will get the wrong answers.  We do not expect that to happen,
but best to be on the safe side and guard against it anyway.

Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/hpsa.c

index afd192d2d27dba24d755739de0704f56660b7610..03fae8af23eca3fca8a290926382967695a702bd 100644 (file)
@@ -3921,6 +3921,9 @@ static int hpsa_scsi_ioaccel_raid_map(struct ctlr_info *h,
                return IO_ACCEL_INELIGIBLE;
        }
 
+       if (unlikely(map_index >= RAID_MAP_MAX_ENTRIES))
+               return IO_ACCEL_INELIGIBLE;
+
        c->phys_disk = dev->phys_disk[map_index];
 
        disk_handle = dd[map_index].ioaccel_handle;
This page took 0.030293 seconds and 5 git commands to generate.