Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba773669 authored by Dan Carpenter's avatar Dan Carpenter Committed by Nicholas Bellinger
Browse files

iscsi-target: Fix iscsit_allocate_se_cmd_for_tmr failure path bugs



This patch fixes two bugs in allocation failure handling in
iscsit_allocate_se_cmd_for_tmr():

This first reported by DanC is a free-after call to transport_free_se_cmd(), this
patch drops the transport_free_se_cmd() call all together, as iscsit_release_cmd()
will release existing allocations as expected.

The second is a bug where iscsi_cmd_t was being leaked on a cmd->tmr_req allocation
failure, so make this jump to iscsit_release_cmd() as well.

Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 6626a057
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ struct iscsi_cmd *iscsit_allocate_se_cmd_for_tmr(
	if (!cmd->tmr_req) {
		pr_err("Unable to allocate memory for"
			" Task Management command!\n");
		return NULL;
		goto out;
	}
	/*
	 * TASK_REASSIGN for ERL=2 / connection stays inside of
@@ -298,8 +298,6 @@ struct iscsi_cmd *iscsit_allocate_se_cmd_for_tmr(
	return cmd;
out:
	iscsit_release_cmd(cmd);
	if (se_cmd)
		transport_free_se_cmd(se_cmd);
	return NULL;
}