]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libsmartcols: fix memory leak on filter parser error
authorKarel Zak <kzak@redhat.com>
Wed, 13 Dec 2023 10:09:41 +0000 (11:09 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 13 Dec 2023 10:30:28 +0000 (11:30 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
libsmartcols/src/filter-parser.y

index 4cddf26034e8fb04c30f361a62b97c2f0c865c38..fcbf26a99eef938ca98735bb672b1b3e78233603 100644 (file)
@@ -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($$);
+       } <param>
+
 %%
 
 %start filter;