diff options
author | Dan Carpenter <error27@gmail.com> | 2010-07-15 04:20:19 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-28 10:05:43 -0400 |
commit | e84d96dbb0638186feb526c32810a3400f33d0c8 (patch) | |
tree | f9c17031c91040214cbe3ea745aa53d10602d340 /drivers | |
parent | 32de596074592ee8593416c83347b5a787e825c5 (diff) |
[SCSI] dpt_i2o: move range check forward
The check to test that "bus_no" was valid came after we had already used
it as an array offset. This patch moves it forward.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/dpt_i2o.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c index f2d4df14c311..ffc1edf5e80d 100644 --- a/drivers/scsi/dpt_i2o.c +++ b/drivers/scsi/dpt_i2o.c | |||
@@ -2640,6 +2640,13 @@ static s32 adpt_i2o_reparse_lct(adpt_hba* pHba) | |||
2640 | continue; | 2640 | continue; |
2641 | } | 2641 | } |
2642 | bus_no = buf[0]>>16; | 2642 | bus_no = buf[0]>>16; |
2643 | if (bus_no >= MAX_CHANNEL) { /* Something wrong skip it */ | ||
2644 | printk(KERN_WARNING | ||
2645 | "%s: Channel number %d out of range\n", | ||
2646 | pHba->name, bus_no); | ||
2647 | continue; | ||
2648 | } | ||
2649 | |||
2643 | scsi_id = buf[1]; | 2650 | scsi_id = buf[1]; |
2644 | scsi_lun = (buf[2]>>8 )&0xff; | 2651 | scsi_lun = (buf[2]>>8 )&0xff; |
2645 | pDev = pHba->channel[bus_no].device[scsi_id]; | 2652 | pDev = pHba->channel[bus_no].device[scsi_id]; |
@@ -2668,10 +2675,6 @@ static s32 adpt_i2o_reparse_lct(adpt_hba* pHba) | |||
2668 | adpt_i2o_report_hba_unit(pHba, d); | 2675 | adpt_i2o_report_hba_unit(pHba, d); |
2669 | adpt_i2o_install_device(pHba, d); | 2676 | adpt_i2o_install_device(pHba, d); |
2670 | 2677 | ||
2671 | if(bus_no >= MAX_CHANNEL) { // Something wrong skip it | ||
2672 | printk(KERN_WARNING"%s: Channel number %d out of range \n", pHba->name, bus_no); | ||
2673 | continue; | ||
2674 | } | ||
2675 | pDev = pHba->channel[bus_no].device[scsi_id]; | 2678 | pDev = pHba->channel[bus_no].device[scsi_id]; |
2676 | if( pDev == NULL){ | 2679 | if( pDev == NULL){ |
2677 | pDev = | 2680 | pDev = |