From a36dbfd2f9cd7da70a42998ce3d2fc0272f792f9 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Tue, 3 Sep 2019 15:18:13 +0900 Subject: [PATCH] Fix memory leak Change-Id: I5820c5b9bb75e01c343fccc65e9324d38a79a45c Signed-off-by: Sangyoon Jang --- src/package_manager.c | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/src/package_manager.c b/src/package_manager.c index 19e2e0f..1791d28 100644 --- a/src/package_manager.c +++ b/src/package_manager.c @@ -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; -- 2.7.4