From e89786c29156e851619f9d827944649c82d1792b Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Sun, 11 Jan 2015 07:54:55 +0000 Subject: netlink: fix memory leaks Fix two memory leaks in netlink event monitor. Also fix a leak related to all sets, the ->init expression is not freed. Signed-off-by: Patrick McHardy --- src/netlink.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/netlink.c') diff --git a/src/netlink.c b/src/netlink.c index feaea19a..53473729 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -1724,8 +1724,10 @@ static int netlink_events_set_cb(const struct nlmsghdr *nlh, int type, case NFT_MSG_NEWSET: printf("add "); set = netlink_delinearize_set(monh->ctx, nls); - if (set == NULL) + if (set == NULL) { + nft_set_free(nls); return MNL_CB_ERROR; + } set_print_plain(set); set_free(set); printf("\n"); @@ -1940,6 +1942,7 @@ static void netlink_events_cache_addset(struct netlink_mon_handler *monh, t = table_lookup(&s->handle); if (t == NULL) { fprintf(stderr, "W: Unable to cache set: table not found.\n"); + set_free(s); goto out; } -- cgit v1.2.3