iscsi-target: fix memory leak in lio_target_tiqn_addtpg()

tpg must free when call core_tpg_register() return fail

Signed-off-by: tangwenji <tang.wenji@zte.com.cn>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
tangwenji 2017-09-15 16:03:13 +08:00 committed by Nicholas Bellinger
parent 24528f089d
commit 12d5a43b2d

View File

@ -1123,7 +1123,7 @@ static struct se_portal_group *lio_target_tiqn_addtpg(
ret = core_tpg_register(wwn, &tpg->tpg_se_tpg, SCSI_PROTOCOL_ISCSI); ret = core_tpg_register(wwn, &tpg->tpg_se_tpg, SCSI_PROTOCOL_ISCSI);
if (ret < 0) if (ret < 0)
return NULL; goto free_out;
ret = iscsit_tpg_add_portal_group(tiqn, tpg); ret = iscsit_tpg_add_portal_group(tiqn, tpg);
if (ret != 0) if (ret != 0)
@ -1135,6 +1135,7 @@ static struct se_portal_group *lio_target_tiqn_addtpg(
return &tpg->tpg_se_tpg; return &tpg->tpg_se_tpg;
out: out:
core_tpg_deregister(&tpg->tpg_se_tpg); core_tpg_deregister(&tpg->tpg_se_tpg);
free_out:
kfree(tpg); kfree(tpg);
return NULL; return NULL;
} }