Fix memory leak 35/213235/4
authorSangyoon Jang <jeremy.jang@samsung.com>
Tue, 3 Sep 2019 06:18:13 +0000 (15:18 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Wed, 4 Sep 2019 09:25:09 +0000 (09:25 +0000)
Change-Id: I5820c5b9bb75e01c343fccc65e9324d38a79a45c
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/package_manager.c

index 19e2e0f..1791d28 100644 (file)
@@ -1625,28 +1625,24 @@ static int _get_pkg_size_info(const char *package_id, void *callback, void *user
        else
                res = pkgmgr_client_get_total_package_size_info(pc, __total_result_cb, cbdata);
 
-       if (res == PKGMGR_R_EINVAL) {
-               pkgmgr_client_free(pc);
-               return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
-       } else if (res == PKGMGR_R_ENOPKG) {
-               pkgmgr_client_free(pc);
-               return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
-       } else if (res == PKGMGR_R_ENOMEM) {
-               pkgmgr_client_free(pc);
-               return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
-       } else if (res == PKGMGR_R_EIO) {
-               pkgmgr_client_free(pc);
-               return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
-       } else if (res == PKGMGR_R_EPRIV) {
-               pkgmgr_client_free(pc);
-               return package_manager_error(PACKAGE_MANAGER_ERROR_PERMISSION_DENIED, __FUNCTION__, NULL);
-       } else if (res == PKGMGR_R_ESYSTEM || res == PKGMGR_R_ECOMM || res == PKGMGR_R_ERROR) {
-               pkgmgr_client_free(pc);
-               return package_manager_error(PACKAGE_MANAGER_ERROR_SYSTEM_ERROR, __FUNCTION__, NULL);
-       } else if (res != PKGMGR_R_OK) {
-               _LOGE("Unexpected error");
+       if (res != PKGMGR_R_OK) {
                __free_getsize_cbdata(cbdata);
-               return package_manager_error(PACKAGE_MANAGER_ERROR_SYSTEM_ERROR, __FUNCTION__, NULL);
+               if (res == PKGMGR_R_EINVAL) {
+                       return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
+               } else if (res == PKGMGR_R_ENOPKG) {
+                       return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
+               } else if (res == PKGMGR_R_ENOMEM) {
+                       return package_manager_error(PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
+               } else if (res == PKGMGR_R_EIO) {
+                       return package_manager_error(PACKAGE_MANAGER_ERROR_IO_ERROR, __FUNCTION__, NULL);
+               } else if (res == PKGMGR_R_EPRIV) {
+                       return package_manager_error(PACKAGE_MANAGER_ERROR_PERMISSION_DENIED, __FUNCTION__, NULL);
+               } else if (res == PKGMGR_R_ESYSTEM || res == PKGMGR_R_ECOMM || res == PKGMGR_R_ERROR) {
+                       return package_manager_error(PACKAGE_MANAGER_ERROR_SYSTEM_ERROR, __FUNCTION__, NULL);
+               } else {
+                       _LOGE("Unexpected error");
+                       return package_manager_error(PACKAGE_MANAGER_ERROR_SYSTEM_ERROR, __FUNCTION__, NULL);
+               }
        }
 
        return PACKAGE_MANAGER_ERROR_NONE;