summaryrefslogtreecommitdiff
path: root/libopeniscsiusr
diff options
context:
space:
mode:
authorWenchao Hao <haowenchao@huawei.com>2020-12-29 20:30:25 +0800
committerWenchao Hao <haowenchao@huawei.com>2020-12-30 09:25:30 +0800
commitb24f8ff48e2285e42d151f73e464531c49a9509e (patch)
treee8fd31ff09488a5d7390cb62164e33be997b08d0 /libopeniscsiusr
parente73749f34fdbf6862f43939fb958fca0ba4caadb (diff)
downloadopen-iscsi-b24f8ff48e2285e42d151f73e464531c49a9509e.tar.gz
iscsiadm: Fix memory leak in iscsiadm
Memory allocated by iscsi_context_new() would not be freed if error occurred during parameters parser stage and goto free_ifaces is used to jump to resource clean. Since all resource clean is performed after verified, so change all goto free_ifaces to goto out where handles resource better. Signed-off-by: Wenchao Hao <haowenchao@huawei.com>
Diffstat (limited to 'libopeniscsiusr')
-rw-r--r--libopeniscsiusr/context.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libopeniscsiusr/context.c b/libopeniscsiusr/context.c
index fe92155..c5e869f 100644
--- a/libopeniscsiusr/context.c
+++ b/libopeniscsiusr/context.c
@@ -55,8 +55,12 @@ struct iscsi_context *iscsi_context_new(void)
void iscsi_context_free(struct iscsi_context *ctx)
{
- if (ctx != NULL)
+ if (ctx == NULL)
+ return;
+
+ if (ctx->db)
_idbm_free(ctx->db);
+
free(ctx);
}