summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Moore <paul@paul-moore.com>2019-02-05 16:06:10 -0500
committerPaul Moore <paul@paul-moore.com>2019-02-05 16:06:10 -0500
commitf8854f990004e71ccb9955c33d88d82cdb97ea42 (patch)
tree81f7806c7230a5744a7966def7da979f4b1dfc24
parent06f63ba691cb9df119c6759e8f0a150a2a9cbe69 (diff)
downloadlibseccomp-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.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/db.c b/src/db.c
index 8fed3ad..1173534 100644
--- a/src/db.c
+++ b/src/db.c
@@ -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;
}