From 10e19428a5ef9568d9d1ba88f9158eaa0a161cb3 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 15 Mar 2019 11:31:50 +0100 Subject: src: file descriptor leak in include_file() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit File that contains the ruleset is never closed, track open files through the nft_ctx object and close them accordingly. Reported-by: Václav Zindulka Signed-off-by: Pablo Neira Ayuso --- src/libnftables.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/libnftables.c') diff --git a/src/libnftables.c b/src/libnftables.c index 2271d270..199dbc97 100644 --- a/src/libnftables.c +++ b/src/libnftables.c @@ -364,7 +364,7 @@ static int nft_parse_bison_filename(struct nft_ctx *nft, const char *filename, parser_init(nft, nft->state, msgs, cmds); nft->scanner = scanner_init(nft->state); - if (scanner_read_file(nft->scanner, filename, &internal_location) < 0) + if (scanner_read_file(nft, filename, &internal_location) < 0) return -1; ret = nft_parse(nft, nft->scanner, nft->state); @@ -405,7 +405,7 @@ err: } iface_cache_release(); if (nft->scanner) { - scanner_destroy(nft->scanner); + scanner_destroy(nft); nft->scanner = NULL; } free(nlbuf); @@ -449,7 +449,7 @@ err: } iface_cache_release(); if (nft->scanner) { - scanner_destroy(nft->scanner); + scanner_destroy(nft); nft->scanner = NULL; } -- cgit v1.2.3