From: Mark Knibbs Date: Thu, 9 Oct 2014 11:39:48 +0000 (+0100) Subject: scsi: fix off-by-one LUN check in scsi_scan_host_selected() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=605c6dbef7556604b20b9831ea790dfe988416d8;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git scsi: fix off-by-one LUN check in scsi_scan_host_selected() The Scsi_Host structure max_lun field is the maximum allowed LUN plus 1. So a LUN value is invalid if >= max_lun. Signed-off-by: Mark Knibbs Reviewed-by: Martin K. Petersen Signed-off-by: Christoph Hellwig --- diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 619e68d015aa..b1aa1646012a 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -1727,7 +1727,7 @@ int scsi_scan_host_selected(struct Scsi_Host *shost, unsigned int channel, if (((channel != SCAN_WILD_CARD) && (channel > shost->max_channel)) || ((id != SCAN_WILD_CARD) && (id >= shost->max_id)) || - ((lun != SCAN_WILD_CARD) && (lun > shost->max_lun))) + ((lun != SCAN_WILD_CARD) && (lun >= shost->max_lun))) return -EINVAL; mutex_lock(&shost->scan_mutex);