From 56037f1e7ba65335e1c8f0a04c60ce16bb9a4b18 Mon Sep 17 00:00:00 2001 From: Pawel Andruszkiewicz Date: Mon, 24 Aug 2015 11:25:03 +0200 Subject: [PATCH] [Package] Fixed memory leak. Prevent CID: 435873 [Verification] TCT pass rate (r35): 100% (54/54/0/0/0) Change-Id: I9259991af7b1dd45c6b6ae57782ff6ce2dc5fa0b Signed-off-by: Pawel Andruszkiewicz --- src/package/package_info_provider.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/package/package_info_provider.cc b/src/package/package_info_provider.cc index 557293e1..9f41455f 100644 --- a/src/package/package_info_provider.cc +++ b/src/package/package_info_provider.cc @@ -27,6 +27,7 @@ #include #include "common/logger.h" +#include "common/scope_exit.h" #include "common/tools.h" namespace extension { @@ -218,6 +219,12 @@ bool PackageInfoProvider:: ConvertToPackageToObject( return false; } + SCOPE_EXIT { + if (PACKAGE_MANAGER_ERROR_NONE != package_info_destroy(package_info)) { + LoggerE("Failed to destroy package info"); + } + }; + picojson::array array_data; ret = package_info_foreach_app_from_package(package_info, PACKAGE_INFO_ALLAPP, PackageAppInfoCb, &array_data); @@ -227,11 +234,6 @@ bool PackageInfoProvider:: ConvertToPackageToObject( } out["appIds"] = picojson::value(array_data); - ret = package_info_destroy(package_info); - if ( ret != PACKAGE_MANAGER_ERROR_NONE ) { - LoggerE("Failed to destroy package info"); - } - return true; } -- 2.34.1