diff mbox

[nft,4/4] parser: Fix for memleak when commands fail

Message ID 20170824171413.31737-5-phil@nwl.cc
State Accepted
Delegated to: Pablo Neira
Headers show

Commit Message

Phil Sutter Aug. 24, 2017, 5:14 p.m. UTC
In case of failing command evaluation, commands need to be freed as
their memory becomes orphaned afterwards.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 src/parser_bison.y | 2 ++
 1 file changed, 2 insertions(+)
diff mbox

Patch

diff --git a/src/parser_bison.y b/src/parser_bison.y
index a8b71cddc1920..d149178c2679b 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -692,6 +692,7 @@  input			:	/* empty */
 
 					list_add_tail(&$2->list, &list);
 					if (cmd_evaluate(&state->ectx, $2) < 0) {
+						cmd_free($2);
 						if (++state->nerrs == nft->parser_max_errors)
 							YYABORT;
 					} else
@@ -758,6 +759,7 @@  line			:	common_block			{ $$ = NULL; }
 
 					list_add_tail(&$1->list, &list);
 					if (cmd_evaluate(&state->ectx, $1) < 0) {
+						cmd_free($1);
 						if (++state->nerrs == nft->parser_max_errors)
 							YYABORT;
 					} else