diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c index b42c0bb8caa971d7418d93cc54eca09627cc4f40..3a0cb1fa6767cdf18556a677d45e5a95eb5e7d55 100644 --- a/drivers/scsi/ses.c +++ b/drivers/scsi/ses.c @@ -625,9 +625,11 @@ static void ses_enclosure_data_process(struct enclosure_device *edev, /* these elements are optional */ type_ptr[0] == ENCLOSURE_COMPONENT_SCSI_TARGET_PORT || type_ptr[0] == ENCLOSURE_COMPONENT_SCSI_INITIATOR_PORT || - type_ptr[0] == ENCLOSURE_COMPONENT_CONTROLLER_ELECTRONICS)) + type_ptr[0] == ENCLOSURE_COMPONENT_CONTROLLER_ELECTRONICS)) { addl_desc_ptr += addl_desc_ptr[1] + 2; - + if (addl_desc_ptr + 1 >= ses_dev->page10 + ses_dev->page10_len) + addl_desc_ptr = NULL; + } } } kfree(buf);