diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-05-06 20:45:35 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-05-06 20:45:35 +0200 |
commit | 0bd7d62c450c6736af4141d37073c5b40f1f894d (patch) | |
tree | f0a6ade1e301f0eb6cbaa328780665b965b56586 /src/expr/dynset.c | |
parent | bfd03c10a11b2856a1dc56a945094af340db3f09 (diff) |
expr: dynset: release stateful expression from .free path
==22778==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 64 byte(s) in 1 object(s) allocated from:
#0 0x7f3212406518 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
#1 0x7f321041703e in nftnl_expr_alloc /home/pablo/devel/scm/git-netfilter/libnftnl/src/expr.c:37
#2 0x7f3211d51c16 in netlink_gen_limit_stmt /home/pablo/devel/scm/git-netfilter/nftables/src/netlink_linearize.c:859
#3 0x7f3211d5220c in netlink_gen_stmt_stateful /home/pablo/devel/scm/git-netfilter/nftables/src/netlink_linearize.c:891
#4 0x7f3211d58630 in netlink_gen_meter_stmt /home/pablo/devel/scm/git-netfilter/nftables/src/netlink_linearize.c:1441
[...]
SUMMARY: AddressSanitizer: 64 byte(s) leaked in 1 allocation(s).
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expr/dynset.c')
-rw-r--r-- | src/expr/dynset.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/expr/dynset.c b/src/expr/dynset.c index b2d8edc..91dbea9 100644 --- a/src/expr/dynset.c +++ b/src/expr/dynset.c @@ -277,6 +277,8 @@ static void nftnl_expr_dynset_free(const struct nftnl_expr *e) struct nftnl_expr_dynset *dynset = nftnl_expr_data(e); xfree(dynset->set_name); + if (dynset->expr) + nftnl_expr_free(dynset->expr); } struct expr_ops expr_ops_dynset = { |