| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Varun Prakash <varun@chelsio.com> |
| Date: Wed, 17 May 2017 20:30:43 +0530 |
| Subject: scsi: csiostor: fix use after free in csio_hw_use_fwconfig() |
| |
| From: Varun Prakash <varun@chelsio.com> |
| |
| |
| [ Upstream commit a351e40b6de550049423a26f7ded7b639e363d89 ] |
| |
| mbp pointer is passed to csio_hw_validate_caps() so call mempool_free() |
| after calling csio_hw_validate_caps(). |
| |
| Signed-off-by: Varun Prakash <varun@chelsio.com> |
| Fixes: 541c571fa2fd ("csiostor:Use firmware version from cxgb4/t4fw_version.h") |
| Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/scsi/csiostor/csio_hw.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/scsi/csiostor/csio_hw.c |
| +++ b/drivers/scsi/csiostor/csio_hw.c |
| @@ -1769,7 +1769,6 @@ csio_hw_use_fwconfig(struct csio_hw *hw, |
| goto bye; |
| } |
| |
| - mempool_free(mbp, hw->mb_mempool); |
| if (finicsum != cfcsum) { |
| csio_warn(hw, |
| "Config File checksum mismatch: csum=%#x, computed=%#x\n", |
| @@ -1780,6 +1779,10 @@ csio_hw_use_fwconfig(struct csio_hw *hw, |
| rv = csio_hw_validate_caps(hw, mbp); |
| if (rv != 0) |
| goto bye; |
| + |
| + mempool_free(mbp, hw->mb_mempool); |
| + mbp = NULL; |
| + |
| /* |
| * Note that we're operating with parameters |
| * not supplied by the driver, rather than from hard-wired |