In scsi_test_unit_ready() a local sense may fail to allocate. In
this case the buffer must not be used even if an IO error happens.

Signed-off-by: Oliver Neukum <oneu...@suse.de>
CC: sta...@kernel.org
---
 drivers/scsi/scsi_lib.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index ffd7773..bab19f2 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -2043,10 +2043,10 @@ scsi_test_unit_ready(struct scsi_device *sdev, int 
timeout, int retries,
        do {
                result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 0, sshdr,
                                          timeout, retries, NULL);
-               if (sdev->removable && scsi_sense_valid(sshdr) &&
+               if (sdev->removable && sshdr && scsi_sense_valid(sshdr) &&
                    sshdr->sense_key == UNIT_ATTENTION)
                        sdev->changed = 1;
-       } while (scsi_sense_valid(sshdr) &&
+       } while (sshdr && scsi_sense_valid(sshdr) &&
                 sshdr->sense_key == UNIT_ATTENTION && --retries);
 
        if (!sshdr_external)
-- 
1.7.7

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to