diff options
-rw-r--r-- | src/netlink.c | 4 | ||||
-rw-r--r-- | src/segtree.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/netlink.c b/src/netlink.c index bb014320..fb0a17ba 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -1236,8 +1236,10 @@ int netlink_get_setelem(struct netlink_ctx *ctx, const struct handle *h, netlink_dump_set(nls, ctx); nls_out = mnl_nft_setelem_get_one(ctx, nls); - if (!nls_out) + if (!nls_out) { + nftnl_set_free(nls); return -1; + } ctx->set = set; set->init = set_expr_alloc(loc, set); diff --git a/src/segtree.c b/src/segtree.c index 2b5831f2..266a2b4d 100644 --- a/src/segtree.c +++ b/src/segtree.c @@ -744,6 +744,8 @@ int get_set_decompose(struct table *table, struct set *set) errno = ENOENT; return -1; } + expr_free(left); + expr_free(i); compound_expr_add(new_init, range); left = NULL; |