From ef5c0a87137ab3a7eebd66328e1374e5f2247d8a Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 13 Dec 2023 11:09:41 +0100 Subject: [PATCH] libsmartcols: fix memory leak on filter parser error Signed-off-by: Karel Zak --- libsmartcols/src/filter-parser.y | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libsmartcols/src/filter-parser.y b/libsmartcols/src/filter-parser.y index 4cddf26034..fcbf26a99e 100644 --- a/libsmartcols/src/filter-parser.y +++ b/libsmartcols/src/filter-parser.y @@ -55,6 +55,15 @@ void yyerror(yyscan_t *locp, struct libscols_filter *fltr, char const *msg); %left T_OR T_AND %left T_EQ T_NE T_LT T_LE T_GT T_GE T_REG T_NREG T_TRUE T_FALSE T_NEG + +%destructor { + /* This destruct is called on error. The root node will be deallocated + * by filter_unref_node(). + */ + if (fltr->root != $$) + filter_unref_node($$); + } + %% %start filter; -- 2.47.3