The Parfait (version 2.1.0) static code analysis tool found the following NULL pointer dereference problem. dev_to_shost() in include/scsi/scsi_host.h has the ability to return NULL if the scsi host device does not have the Scsi_host->parent field set. With the possibilty of a NULL pointer being set for the Scsi_Host->parent field, calls to host_to_us() have to make sure the return pointer is not null. Changes were made to check for a return value of NULL on calls to host_to_us(). Signed-off-by: Joe Moriarty <joe.moriarty@xxxxxxxxxx> Reviewed-by: Steven Sistare <steven.sistare@xxxxxxxxxx> Acked-by: Hakon Bugge <hakon.bugge@xxxxxxxxxx> --- drivers/usb/storage/scsiglue.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c index c267f2812a04..00a8cb005e83 100644 --- a/drivers/usb/storage/scsiglue.c +++ b/drivers/usb/storage/scsiglue.c @@ -329,7 +329,18 @@ static int slave_configure(struct scsi_device *sdev) static int target_alloc(struct scsi_target *starget) { - struct us_data *us = host_to_us(dev_to_shost(starget->dev.parent)); + struct Scsi_Host *host; + struct us_data *us; + + host = dev_to_shost(starget->dev.parent); + if (!host) { + dev_dbg(&(starget)->dev, + "SCSI Host not found, Error in %s: us = NULL\n", + __func__); + return -ENODEV; + } + + us = host_to_us(host); /* * Some USB drives don't support REPORT LUNS, even though they -- 2.15.0 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html