Fix more leaks...
All checks were successful
CMake / ubuntu-latest - shared=OFF, pthread=OFF, posix=OFF (push) Successful in 14s
CMake / ubuntu-latest - shared=ON, pthread=OFF, posix=OFF (push) Successful in 14s
CMake / ubuntu-latest - shared=OFF, pthread=OFF, posix=ON (push) Successful in 16s
CMake / ubuntu-latest - shared=ON, pthread=OFF, posix=ON (push) Successful in 16s
CMake / ubuntu-latest - shared=OFF, pthread=ON, posix=ON (push) Successful in 13s
CMake / ubuntu-latest - shared=ON, pthread=ON, posix=ON (push) Successful in 15s

Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2025-07-27 22:44:02 +03:00
parent 3bc6e879d8
commit dbaf6d16ce
2 changed files with 9 additions and 0 deletions

View File

@@ -33,6 +33,7 @@ int main(int argc, char *argv[])
if (!value) {
printf("Failed to parse DCFG file. Error: %s\n",
dcfg_last_error(instance));
dcfg_destroy_instance(instance);
return 1;
}

View File

@@ -931,6 +931,10 @@ AST *parser_parse_value(Parser *parser)
&& parser->cur.type != TokenType_String) {
strcpy(parser->instance->last_error,
"Expected identifier or string for object key");
for (size_t i = 0; i < vector_size(ast->v.bl.entryv); i++) {
AST_free_parser(ast->v.bl.entryv[i].k, parser);
AST_free_parser(ast->v.bl.entryv[i].v, parser);
}
vector_free(ast->v.bl.entryv);
FREE(ast);
return NULL;
@@ -940,6 +944,10 @@ AST *parser_parse_value(Parser *parser)
if (!Parser_accept(parser, TokenType_Set, NULL)) {
strcpy(parser->instance->last_error,
"Expected = after object key");
for (size_t i = 0; i < vector_size(ast->v.bl.entryv); i++) {
AST_free_parser(ast->v.bl.entryv[i].k, parser);
AST_free_parser(ast->v.bl.entryv[i].v, parser);
}
vector_free(ast->v.bl.entryv);
FREE(ast);
return NULL;