qlcnic: potential NULL dereference in qlcnic_83xx_get_minidump_template()

If qlcnic_fw_cmd_get_minidump_temp() fails then "fw_dump->tmpl_hdr" is
NULL or possibly freed.  It can lead to an oops later.

Fixes: d01a6d3c8a ('qlcnic: Add support to enable capability to extend minidump for iSCSI')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Dan Carpenter 2016-05-10 22:20:04 +03:00 committed by David S. Miller
parent 685764b108
commit 5f46feab87

View file

@ -1417,6 +1417,7 @@ void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *adapter)
struct qlcnic_fw_dump *fw_dump = &ahw->fw_dump; struct qlcnic_fw_dump *fw_dump = &ahw->fw_dump;
struct pci_dev *pdev = adapter->pdev; struct pci_dev *pdev = adapter->pdev;
bool extended = false; bool extended = false;
int ret;
prev_version = adapter->fw_version; prev_version = adapter->fw_version;
current_version = qlcnic_83xx_get_fw_version(adapter); current_version = qlcnic_83xx_get_fw_version(adapter);
@ -1427,8 +1428,11 @@ void qlcnic_83xx_get_minidump_template(struct qlcnic_adapter *adapter)
if (qlcnic_83xx_md_check_extended_dump_capability(adapter)) if (qlcnic_83xx_md_check_extended_dump_capability(adapter))
extended = !qlcnic_83xx_extend_md_capab(adapter); extended = !qlcnic_83xx_extend_md_capab(adapter);
if (!qlcnic_fw_cmd_get_minidump_temp(adapter)) ret = qlcnic_fw_cmd_get_minidump_temp(adapter);
dev_info(&pdev->dev, "Supports FW dump capability\n"); if (ret)
return;
dev_info(&pdev->dev, "Supports FW dump capability\n");
/* Once we have minidump template with extended iSCSI dump /* Once we have minidump template with extended iSCSI dump
* capability, update the minidump capture mask to 0x1f as * capability, update the minidump capture mask to 0x1f as