]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: pm8001: fix double free in pm8001_pci_probe
authorPan Bian <bianpan2016@163.com>
Tue, 8 Aug 2017 11:40:30 +0000 (19:40 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 10 Aug 2017 23:55:35 +0000 (19:55 -0400)
commitbaebfd891a30b3b1329bd5216530680086f053df
tree5992e86ed76195b4ff9e05afa92e9960c5a1f4fa
parentaa81e5540b07cd00f39ebd32773e38f455274371
scsi: pm8001: fix double free in pm8001_pci_probe

In function pm8001_pci_probe(), on errors that the control flow jumps to
label err_out_ha_free, function pm8001_free() is called. In pm8001_free(),
scsi_host_put() is called to release shost, which keeps the return value
of scsi_host_alloc(). After pm8001_free() returns, kfree() is called to
free shost again, resulting in a double free bug. This patch removes
scsi_host_put() from pm8001_free() and explicitly calls scsi_host_put()
to release Scsi_Host in need.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Jack Wang <jinpu.wang@profitbricks.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/pm8001/pm8001_init.c