From: Karel Zak Date: Wed, 13 Dec 2023 10:09:41 +0000 (+0100) Subject: libsmartcols: fix memory leak on filter parser error X-Git-Tag: v2.40-rc1~104^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef5c0a87137ab3a7eebd66328e1374e5f2247d8a;p=thirdparty%2Futil-linux.git libsmartcols: fix memory leak on filter parser error Signed-off-by: Karel Zak --- 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;