Like other callers of scsi_execute(send_trespass_cmd, hp_sw_tur...),
we need to check whether sshdr is valid.

Signed-off-by: zhengbin <zhengbi...@huawei.com>
---
 drivers/scsi/sr_ioctl.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/scsi/sr_ioctl.c b/drivers/scsi/sr_ioctl.c
index ffcf902..335cfdd 100644
--- a/drivers/scsi/sr_ioctl.c
+++ b/drivers/scsi/sr_ioctl.c
@@ -206,6 +206,11 @@ int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc)

        /* Minimal error checking.  Ignore cases we know about, and report the 
rest. */
        if (driver_byte(result) != 0) {
+               if (!scsi_sense_valid(sshdr)) {
+                       err = -EIO;
+                       goto out;
+               }
+
                switch (sshdr->sense_key) {
                case UNIT_ATTENTION:
                        SDev->changed = 1;
--
2.7.4

Reply via email to