Fix resource leak and potential crash 06/269506/1
authorYunjin Lee <yunjin-.lee@samsung.com>
Mon, 17 Jan 2022 09:19:40 +0000 (18:19 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Mon, 17 Jan 2022 09:19:40 +0000 (18:19 +0900)
Change-Id: Id593b90c637914789f4fbd8a528193670726e1b2
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
ui-popup/src/popup.c

index 74af91f47458990c4d2b490db731852f5eccabea..59dfbf8734b25f18ee23f1c7b29cf027667d03cc 100644 (file)
@@ -174,17 +174,20 @@ static char* __get_pkg_label(const char* pkgid)
        int ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK) {
                LOGE("pkgmgrinfo_pkginfo_get_pkginfo() failed. ret = %d, pkgid = %s", ret, pkgid);
-               return "";
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return strdup("");
        }
        ret = pkgmgrinfo_pkginfo_get_label(handle, &label);
        if (ret != PMINFO_R_OK) {
                LOGE("pkgmgrinfo_pkginfo_get_label() failed. ret = %d, pkgid = %s", ret, pkgid);
-               return "";
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return strdup("");
        }
        char* pkg_label = strdup(label);
        if (pkg_label == NULL) {
                LOGE("strdup() of pkg_label failed. pkgid = %s", pkgid);
-               return "";
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return strdup("");
        }
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);