Fix memleak in rules-check.cc

This commit is contained in:
Ervin Hegedus 2024-03-27 11:45:36 +01:00
parent 39848e5564
commit 5b2404e44d
No known key found for this signature in database
GPG Key ID: 5FA5BC3F5EC41F61

View File

@ -41,6 +41,7 @@ int main(int argc, char **argv) {
if (*args == NULL) { if (*args == NULL) {
print_help(argv[0]); print_help(argv[0]);
delete rules;
return 0; return 0;
} }
@ -50,6 +51,7 @@ int main(int argc, char **argv) {
const char *arg = *args; const char *arg = *args;
std::string err; std::string err;
int r; int r;
bool need_free = false;
if (argFull.empty() == false) { if (argFull.empty() == false) {
if (arg[strlen(arg)-1] == '\"') { if (arg[strlen(arg)-1] == '\"') {
@ -72,6 +74,7 @@ int main(int argc, char **argv) {
if (argFull.empty() == false) { if (argFull.empty() == false) {
arg = strdup(argFull.c_str()); arg = strdup(argFull.c_str());
need_free = true;
argFull.clear(); argFull.clear();
} }
@ -81,6 +84,9 @@ int main(int argc, char **argv) {
} else { } else {
r = rules->load(arg); r = rules->load(arg);
} }
if(need_free == true && arg != nullptr) {
free((void*)arg);
}
if (r < 0) { if (r < 0) {
err.assign(rules->m_parserError.str()); err.assign(rules->m_parserError.str());
rules->m_parserError.str(""); rules->m_parserError.str("");