conf: init parser after check with stat()

Commit changes are made to avoid possible memory leaks. If the parser
is initialized before configuration file checking, there was no deinit
call before function return. Do check config file existance and type
before YAML parser initialization, so we don't need to deinit parser
before exiting the function.

Bug: #7302
pull/11948/head
Zemeteri Kamimizu 5 months ago committed by Victor Julien
parent 1591ad4408
commit 87e6e9374f

@ -558,11 +558,6 @@ ConfYamlLoadFileWithPrefix(const char *filename, const char *prefix)
int ret;
ConfNode *root = ConfGetNode(prefix);
if (yaml_parser_initialize(&parser) != 1) {
SCLogError("failed to initialize yaml parser.");
return -1;
}
struct stat stat_buf;
/* coverity[toctou] */
if (stat(filename, &stat_buf) == 0) {
@ -574,6 +569,11 @@ ConfYamlLoadFileWithPrefix(const char *filename, const char *prefix)
}
}
if (yaml_parser_initialize(&parser) != 1) {
SCLogError("failed to initialize yaml parser.");
return -1;
}
/* coverity[toctou] */
infile = fopen(filename, "r");
if (infile == NULL) {

Loading…
Cancel
Save