From 8e28837a2f8c79a94be52f8d809a314e4ba735f9 Mon Sep 17 00:00:00 2001 From: Weiguo Li Date: Wed, 23 Feb 2022 21:10:28 +0800 Subject: [PATCH] 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 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11714 (master) (cherry picked from commit e685574f76924461179d91daf284b9a39332a11d) Change-Id: Ida3651e9369fb5c4948969480d398a723b2cb6a2 Signed-off-by: Krzysztof Karas Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12472 Reviewed-by: Shuhei Matsumoto Reviewed-by: Tomasz Zawadzki Reviewed-by: Konrad Sztyber Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- lib/iscsi/iscsi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/iscsi/iscsi.c b/lib/iscsi/iscsi.c index 20dec1dc9..00b1d62e2 100644 --- a/lib/iscsi/iscsi.c +++ b/lib/iscsi/iscsi.c @@ -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; }