[SCSI] hpsa: fix potential array overflow in hpsa_update_scsi_devices
authorScott Teel <scott.teel@hp.com>
Wed, 26 Oct 2011 21:21:12 +0000 (16:21 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Sun, 30 Oct 2011 10:34:04 +0000 (14:34 +0400)
commitb7ec021fe6fe979dbd4e62604a4942f964b12864
tree1fb695d21736aa12d6144fcd373aee9fe1b6dc54
parentcfe5badcab2e993e71ebebbc07c21c270e5580c0
[SCSI] hpsa: fix potential array overflow in hpsa_update_scsi_devices

The currentsd[] array in hpsa_update_scsi_devices had room for
256 devices.  The code was iterating over however many physical
and logical devices plus an additional number of possible external
MSA2XXX controllers, which together could potentially exceed 256.

We increased the size of the currentsd array to 1024 + 1024 + 32 + 1
elements to reflect a reasonable maximum possible number of devices
which might be encountered.  We also don't just walk off the end
of the array if the array controller reports more devices than we
are prepared to handle, we just ignore the excessive devices.

Signed-off-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/hpsa.c
drivers/scsi/hpsa.h
drivers/scsi/hpsa_cmd.h