| From 75f8ee8e01a6c96652f27da40d4bdac9e2e485f0 Mon Sep 17 00:00:00 2001 |
| From: Alan Stern <stern@rowland.harvard.edu> |
| Date: Fri, 12 Feb 2010 12:13:31 -0500 |
| Subject: [SCSI] fix memory leak in scsi_report_lun_scan |
| |
| From: Alan Stern <stern@rowland.harvard.edu> |
| |
| commit 75f8ee8e01a6c96652f27da40d4bdac9e2e485f0 upstream. |
| |
| This patch (as1333) fixes a bug in scsi_report_lun_scan(). If a |
| newly-allocated device can't be used, it should be deleted. |
| |
| Signed-off-by: Alan Stern <stern@rowland.harvard.edu> |
| Signed-off-by: James Bottomley <James.Bottomley@suse.de> |
| Cc: Hannes Reinecke <hare@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/scsi/scsi_scan.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/scsi/scsi_scan.c |
| +++ b/drivers/scsi/scsi_scan.c |
| @@ -1339,8 +1339,10 @@ static int scsi_report_lun_scan(struct s |
| sdev = scsi_alloc_sdev(starget, 0, NULL); |
| if (!sdev) |
| return 0; |
| - if (scsi_device_get(sdev)) |
| + if (scsi_device_get(sdev)) { |
| + __scsi_remove_device(sdev); |
| return 0; |
| + } |
| } |
| |
| sprintf(devname, "host %d channel %d id %d", |