Fix memory leak
[platform/core/api/package-manager.git] / 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;