iscsi: fix a memory leak in error handling

When function returned from the error handling the mempool on
'sess' was not released which lead to a memory leak.

Fixes issue #2393.

Signed-off-by: Weiguo Li <liwg06@foxmail.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11714 (master)

(cherry picked from commit e685574f76)
Change-Id: Ida3651e9369fb5c4948969480d398a723b2cb6a2
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12472
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Weiguo Li 2022-02-23 21:10:28 +08:00 committed by Keith Lucas
parent 323beab1a3
commit 8e28837a2f

View File

@ -582,6 +582,7 @@ create_iscsi_sess(struct spdk_iscsi_conn *conn,
sess->conns = calloc(sess->MaxConnections, sizeof(*sess->conns));
if (!sess->conns) {
spdk_mempool_put(g_iscsi.session_pool, (void *)sess);
SPDK_ERRLOG("calloc() failed for connection array\n");
return -ENOMEM;
}