From 5b2404e44d8afbd979227a5fa2acb69622f6d694 Mon Sep 17 00:00:00 2001 From: Ervin Hegedus Date: Wed, 27 Mar 2024 11:45:36 +0100 Subject: [PATCH] Fix memleak in rules-check.cc --- tools/rules-check/rules-check.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/rules-check/rules-check.cc b/tools/rules-check/rules-check.cc index f59439ee..b1b974a4 100644 --- a/tools/rules-check/rules-check.cc +++ b/tools/rules-check/rules-check.cc @@ -41,6 +41,7 @@ int main(int argc, char **argv) { if (*args == NULL) { print_help(argv[0]); + delete rules; return 0; } @@ -50,6 +51,7 @@ int main(int argc, char **argv) { const char *arg = *args; std::string err; int r; + bool need_free = false; if (argFull.empty() == false) { if (arg[strlen(arg)-1] == '\"') { @@ -72,6 +74,7 @@ int main(int argc, char **argv) { if (argFull.empty() == false) { arg = strdup(argFull.c_str()); + need_free = true; argFull.clear(); } @@ -81,6 +84,9 @@ int main(int argc, char **argv) { } else { r = rules->load(arg); } + if(need_free == true && arg != nullptr) { + free((void*)arg); + } if (r < 0) { err.assign(rules->m_parserError.str()); rules->m_parserError.str("");