From 92dccdb2698216cbdba6164610092d301cba8022 Mon Sep 17 00:00:00 2001 From: arthur <79771473767@ya.ru> Date: Thu, 15 May 2025 16:59:44 +0300 Subject: [PATCH 1/2] fix leaks --- src/common/clib-package.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/common/clib-package.c b/src/common/clib-package.c index 08701174..21de22c6 100644 --- a/src/common/clib-package.c +++ b/src/common/clib-package.c @@ -390,6 +390,8 @@ static inline int install_packages(list_t *list, const char *dir, int verbose) { loop_cleanup: if (slug) free(slug); + if (error && pkg) + clib_package_free(pkg); if (error) { list_iterator_destroy(iterator); iterator = NULL; @@ -682,6 +684,10 @@ clib_package_new_from_slug_with_package_name(const char *slug, int verbose, json = res->data; _debug("status: %d", res->status); if (!res || !res->ok) { + if (res) { + http_get_free(res); + res = NULL; + } goto download; } log = "fetch"; From 829e12acd2145dd2d0ab66f83fbc0eaa43e89174 Mon Sep 17 00:00:00 2001 From: arthur <79771473767@ya.ru> Date: Fri, 16 May 2025 06:23:13 +0300 Subject: [PATCH 2/2] fix condition --- src/common/clib-package.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/common/clib-package.c b/src/common/clib-package.c index 21de22c6..94e2e25d 100644 --- a/src/common/clib-package.c +++ b/src/common/clib-package.c @@ -390,9 +390,11 @@ static inline int install_packages(list_t *list, const char *dir, int verbose) { loop_cleanup: if (slug) free(slug); - if (error && pkg) - clib_package_free(pkg); if (error) { + if (pkg) { + clib_package_free(pkg); + pkg = NULL; + } list_iterator_destroy(iterator); iterator = NULL; rc = -1; @@ -681,15 +683,13 @@ clib_package_new_from_slug_with_package_name(const char *slug, int verbose, #else res = http_get(json_url); #endif - json = res->data; - _debug("status: %d", res->status); if (!res || !res->ok) { - if (res) { - http_get_free(res); - res = NULL; - } + http_get_free(res); + res = NULL; goto download; } + json = res->data; + _debug("status: %d", res->status); log = "fetch"; } }