diff options
author | Wenchao Hao <haowenchao@huawei.com> | 2020-12-29 20:30:25 +0800 |
---|---|---|
committer | Wenchao Hao <haowenchao@huawei.com> | 2020-12-30 09:25:30 +0800 |
commit | b24f8ff48e2285e42d151f73e464531c49a9509e (patch) | |
tree | e8fd31ff09488a5d7390cb62164e33be997b08d0 /libopeniscsiusr | |
parent | e73749f34fdbf6862f43939fb958fca0ba4caadb (diff) | |
download | open-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.c | 6 |
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); } |