{
package_info_h pkg_info = NULL;
char *pkg_name = NULL;
+ int ret;
- pkgmgrinfo_pkginfo_get_pkgid(pkg_handle, &pkg_name);
- if (pkg_name == NULL)
+ ret = pkgmgrinfo_pkginfo_get_pkgid(pkg_handle, &pkg_name);
+ if (ret != PMINFO_R_OK)
return PACKAGE_MANAGER_ERROR_SYSTEM_ERROR;
pkg_info = calloc(1, sizeof(struct package_info_s));
if (pkgmgrinfo_appinfo_get_appinfo(app_id, &pkgmgrinfo_appinfo) != PMINFO_R_OK)
return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
retval = pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo, &pkg_id);
- if (retval != PMINFO_R_OK)
+ if (retval != PMINFO_R_OK) {
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
+ }
pkg_id_dup = strdup(pkg_id);
if (pkg_id_dup == NULL) {
if (pkgmgrinfo_appinfo_get_appinfo(app_id, &pkgmgrinfo_appinfo) != PMINFO_R_OK)
return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
retval = pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo, &permission);
- if (retval != PMINFO_R_OK)
+ if (retval != PMINFO_R_OK) {
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
return package_manager_error(PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE, __FUNCTION__, NULL);
+ }
if (permission == PMINFO_PERMISSION_NORMAL)
*permission_type = PACKAGE_MANAGER_PERMISSION_NORMAL;
package_info_foreach_cert_info(package_info, _cert_info_cb, NULL);
+ free(pkg);
+ free(label);
+ free(icon);
+ free(version);
+ free(type);
+
ret = package_info_destroy(package_info);
if (ret != PACKAGE_MANAGER_ERROR_NONE)
return PACKAGE_MANAGER_ERROR_INVALID_PARAMETER;