Skip to content

Commit 1d505c8

Browse files
authored
fix: memory leak in clib_package_new (#323)
Direct leak of 32 byte(s) in 1 object(s) allocated from: 0 malloc 1 json_object_init clib/deps/parson/parson.c:291:42 2 json_value_init_object clib/deps/parson/parson.c:1077:31 3 parse_object_value clib/deps/parson/parson.c:580:32 4 parse_value clib/deps/parson/parson.c:561:20 5 parse_object_value clib/deps/parson/parson.c:600:21 6 parse_value clib/deps/parson/parson.c:561:20 7 json_parse_string clib/deps/parson/parson.c:910:12 8 clib_package_new clib/src/common/clib-package.c:468:16 9 clib_package_load_from_manifest clib/src/common/clib-package.c:259:9
1 parent 5f85b72 commit 1d505c8

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/common/clib-package.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,8 @@ clib_package_t *clib_package_new(const char *json, int verbose) {
513513
for (unsigned int i = 0; i < json_array_get_count(flags); i++) {
514514
char *flag = json_array_get_string_safe(flags, i);
515515
if (flag) {
516+
char *old_flags = pkg->flags;
517+
516518
if (!pkg->flags) {
517519
pkg->flags = "";
518520
}
@@ -521,6 +523,7 @@ clib_package_t *clib_package_new(const char *json, int verbose) {
521523
goto cleanup;
522524
}
523525

526+
free(old_flags);
524527
free(flag);
525528
}
526529
}

0 commit comments

Comments
 (0)