Commit 24268fd1 authored by Dan Carpenter's avatar Dan Carpenter Committed by Martin K. Petersen

scsi: dpt_i2o: use after free in adpt_release()

The scsi_host_put() function frees "pHba" and then we dereference it on
the next line when we do "scsi_host_put(pHba->host);".

[mkp: included fix from hch]

Fixes: 38e09e3b ("scsi: dpt_i2o: stop using scsi_unregister")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 83c9f08e
...@@ -304,10 +304,12 @@ static int adpt_detect(struct scsi_host_template* sht) ...@@ -304,10 +304,12 @@ static int adpt_detect(struct scsi_host_template* sht)
static void adpt_release(adpt_hba *pHba) static void adpt_release(adpt_hba *pHba)
{ {
scsi_remove_host(pHba->host); struct Scsi_Host *shost = pHba->host;
scsi_remove_host(shost);
// adpt_i2o_quiesce_hba(pHba); // adpt_i2o_quiesce_hba(pHba);
adpt_i2o_delete_hba(pHba); adpt_i2o_delete_hba(pHba);
scsi_host_put(pHba->host); scsi_host_put(shost);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment