diff options
author | Paul Moore <paul@paul-moore.com> | 2019-02-05 16:06:10 -0500 |
---|---|---|
committer | Paul Moore <paul@paul-moore.com> | 2019-02-05 16:06:10 -0500 |
commit | f8854f990004e71ccb9955c33d88d82cdb97ea42 (patch) | |
tree | 81f7806c7230a5744a7966def7da979f4b1dfc24 | |
parent | 06f63ba691cb9df119c6759e8f0a150a2a9cbe69 (diff) | |
download | libseccomp-f8854f990004e71ccb9955c33d88d82cdb97ea42.tar.gz |
db: fix a leak found by clang
Fix a leak found by clang where we were not cleaning up properly in
the error path.
CC libseccomp_la-db.lo
db.c:2020:2: warning: Potential leak of memory pointed to by 'rule_s'
_db_snap_release(snap);
^~~~~~~~~~~~~~~~
Signed-off-by: Paul Moore <paul@paul-moore.com>
-rw-r--r-- | src/db.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -1947,7 +1947,7 @@ int db_col_transaction_start(struct db_filter_col *col) unsigned int iter; struct db_filter_snap *snap; struct db_filter *filter_o, *filter_s; - struct db_api_rule_list *rule_o, *rule_s, *rule_tmp; + struct db_api_rule_list *rule_o, *rule_s = NULL, *rule_tmp; /* allocate the snapshot */ snap = zmalloc(sizeof(*snap)); @@ -2004,6 +2004,7 @@ int db_col_transaction_start(struct db_filter_col *col) rule_tmp->next = rule_s; filter_s->rules = rule_s; } + rule_s = NULL; /* next rule */ rule_o = rule_o->next; @@ -2017,6 +2018,8 @@ int db_col_transaction_start(struct db_filter_col *col) return 0; trans_start_failure: + if (rule_s != NULL) + free(rule_s); _db_snap_release(snap); return -ENOMEM; } |