From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Fri, 6 Feb 2015 21:14:40 +0100 The vfree() function was called in two cases by the qla4xxx_is_session_exists() function during error handling even if the passed variables "fw_tddb" and "tmp_tddb" contained still a null pointer. * This implementation detail could be improved by adjustments for jump labels. * Let us return immediately after the first failed function call according to the current Linux coding style convention. Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- drivers/scsi/qla4xxx/ql4_os.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index 2a00fd3..a7ca479 100644 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c @@ -6327,17 +6327,15 @@ static int qla4xxx_is_session_exists(struct scsi_qla_host *ha, uint32_t *index) { struct ddb_entry *ddb_entry; - struct ql4_tuple_ddb *fw_tddb = NULL; - struct ql4_tuple_ddb *tmp_tddb = NULL; int idx; int ret = QLA_ERROR; + struct ql4_tuple_ddb *tmp_tddb; + struct ql4_tuple_ddb *fw_tddb = vzalloc(sizeof(*fw_tddb)); - fw_tddb = vzalloc(sizeof(*fw_tddb)); if (!fw_tddb) { DEBUG2(ql4_printk(KERN_WARNING, ha, "Memory Allocation failed.\n")); - ret = QLA_SUCCESS; - goto exit_check; + return QLA_SUCCESS; } tmp_tddb = vzalloc(sizeof(*tmp_tddb)); @@ -6345,7 +6343,7 @@ static int qla4xxx_is_session_exists(struct scsi_qla_host *ha, DEBUG2(ql4_printk(KERN_WARNING, ha, "Memory Allocation failed.\n")); ret = QLA_SUCCESS; - goto exit_check; + goto free_fw; } qla4xxx_convert_param_ddb(fw_ddb_entry, fw_tddb, NULL); @@ -6360,13 +6358,14 @@ static int qla4xxx_is_session_exists(struct scsi_qla_host *ha, ret = QLA_SUCCESS; /* found */ if (index != NULL) *index = idx; - goto exit_check; + goto free_tmp; } } -exit_check: - vfree(fw_tddb); +free_tmp: vfree(tmp_tddb); +free_fw: + vfree(fw_tddb); return ret; } -- 2.2.2 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html