From d29f0825c33af8c53a939b7f0e8d5beb2ed48c83 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Fri, 12 Aug 2016 01:33:33 +0200 Subject: set: prevent memleak in nftnl_jansson_parse_set_info() During list populating, in error case the function returns without freeing the newly allocated 'elem' object, thereby losing any references to it. Signed-off-by: Phil Sutter Signed-off-by: Pablo Neira Ayuso --- src/set.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/set.c b/src/set.c index 5f72458..7a41e8c 100644 --- a/src/set.c +++ b/src/set.c @@ -610,12 +610,12 @@ static int nftnl_jansson_parse_set_info(struct nftnl_set *s, json_t *tree, return -1; json_elem = json_array_get(array, i); - if (json_elem == NULL) - return -1; - - if (nftnl_jansson_set_elem_parse(elem, - json_elem, err) < 0) + if (json_elem == NULL || + nftnl_jansson_set_elem_parse(elem, + json_elem, err) < 0) { + free(elem); return -1; + } list_add_tail(&elem->head, &s->element_list); } -- cgit v1.2.3