diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-05-05 20:49:51 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-05-05 21:07:14 +0200 |
commit | bfd03c10a11b2856a1dc56a945094af340db3f09 (patch) | |
tree | cb2ace02798eb7595f1fedf76f759d9010e6182d /src/expr | |
parent | bf78e69997ff1e7546b1fce89fea7f87aa30e7e2 (diff) |
expr: objref: add nftnl_expr_objref_free() to release object name
==4876==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 9 byte(s) in 1 object(s) allocated from:
#0 0x7f4e2c16b810 in strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a810)
#1 0x7f4e2a39906f in nftnl_expr_objref_set expr/objref.c:45
#2 0x7f4e2a39906f in nftnl_expr_objref_set expr/objref.c:35
Direct leak of 16 byte(s) in 2 object(s) allocated from:
#0 0x7f4018aa0810 in strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a810)
#1 0x7f4016b660af in nftnl_expr_objref_set expr/objref.c:53
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expr')
-rw-r--r-- | src/expr/objref.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/expr/objref.c b/src/expr/objref.c index 7388b18..2eb5c47 100644 --- a/src/expr/objref.c +++ b/src/expr/objref.c @@ -187,6 +187,14 @@ static int nftnl_expr_objref_snprintf_default(char *buf, size_t len, objref->imm.type, objref->imm.name); } +static void nftnl_expr_objref_free(const struct nftnl_expr *e) +{ + struct nftnl_expr_objref *objref = nftnl_expr_data(e); + + xfree(objref->imm.name); + xfree(objref->set.name); +} + static int nftnl_expr_objref_snprintf(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e) @@ -206,6 +214,7 @@ struct expr_ops expr_ops_objref = { .name = "objref", .alloc_len = sizeof(struct nftnl_expr_objref), .max_attr = NFTA_OBJREF_MAX, + .free = nftnl_expr_objref_free, .set = nftnl_expr_objref_set, .get = nftnl_expr_objref_get, .parse = nftnl_expr_objref_parse, |