From df3f2606f94e5f91d24acb086c1f11f9a8f054a1 Mon Sep 17 00:00:00 2001 From: Hyunho Date: Wed, 9 Jun 2021 17:32:30 +0900 Subject: [PATCH] Fix memory leak Change-Id: I39d0d7207a3e576c92816f75b94327940a159b67 Signed-off-by: Hyunho --- src/widget_service.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/widget_service.c b/src/widget_service.c index 43edf75..53a11ee 100644 --- a/src/widget_service.c +++ b/src/widget_service.c @@ -2261,28 +2261,25 @@ static char *__get_widget_main_appid_from_pkgid_or_appid(const char *id) ret = pkgmgrinfo_appinfo_get_appinfo(id, &appinfo); if (ret != PMINFO_R_OK) { _E("Failed to get app/pkg info - %s", id); - return NULL; + goto end; } ret = pkgmgrinfo_appinfo_get_pkgid(appinfo, &pkgid); if (ret != PMINFO_R_OK) { _E("Failed to get pkgid - %s", id); - pkgmgrinfo_appinfo_destroy_appinfo(appinfo); - return NULL; + goto end; } ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &pkginfo); if (ret != PMINFO_R_OK) { _E("Failed to get pkginfo - %s", id); - pkgmgrinfo_appinfo_destroy_appinfo(appinfo); - return NULL; + goto end; } new_pkgid = strdup(pkgid); - pkgmgrinfo_appinfo_destroy_appinfo(appinfo); if (new_pkgid == NULL) { _E("out of memory"); /* LCOV_EXCL_LINE */ - return NULL; /* LCOV_EXCL_LINE */ + goto end; /* LCOV_EXCL_LINE */ } id = new_pkgid; } @@ -2317,7 +2314,10 @@ static char *__get_widget_main_appid_from_pkgid_or_appid(const char *id) } end: - pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo); + if (pkginfo) + pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo); + if (appinfo) + pkgmgrinfo_appinfo_destroy_appinfo(appinfo); if (new_pkgid) free(new_pkgid); -- 2.34.1