mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-15 23:55:03 +03:00
Fix memleak in rules-check.cc
This commit is contained in:
parent
39848e5564
commit
5b2404e44d
@ -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("");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user