In case of failing command evaluation, commands need to be freed as
their memory becomes orphaned afterwards.

Signed-off-by: Phil Sutter <[email protected]>
---
 src/parser_bison.y | 2 ++
 1 file changed, 2 insertions(+)

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
-- 
2.13.1

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to