Fix memory leak 44/118744/2 accepted/tizen/3.0/common/20170315.122632 accepted/tizen/3.0/ivi/20170314.221556 accepted/tizen/3.0/mobile/20170314.221447 accepted/tizen/3.0/tv/20170314.221526 accepted/tizen/3.0/wearable/20170314.221543 submit/tizen_3.0/20170314.022936
authorSangyoon Jang <s89.jang@samsung.com>
Tue, 14 Mar 2017 01:41:06 +0000 (10:41 +0900)
committerSangyoon Jang <s89.jang@samsung.com>
Tue, 14 Mar 2017 02:30:48 +0000 (19:30 -0700)
Change-Id: I4a6e48bec42f1fa2a8908c028bf1e8e808adead3
Signed-off-by: Sangyoon Jang <s89.jang@samsung.com>
(cherry picked from commit 3c6a7f21bc7ec21db316048134bc3e32018c43b3)

src/common/utils/manifest_util.cc

index a5591f7..e1a06ab 100644 (file)
@@ -21,16 +21,10 @@ namespace {
 int PkgmgrAppInfoCallback(const pkgmgrinfo_appinfo_h handle,
                           void *user_data) {
   manifest_x* mfx = static_cast<manifest_x*>(user_data);
-  application_x* application =
-      static_cast<application_x*>(calloc(1, sizeof(application_x)));
-  if (!application)
-    return PMINFO_R_ERROR;
 
   char* app_id = nullptr;
-  if (pkgmgrinfo_appinfo_get_appid(handle, &app_id)) {
-    free(application);
+  if (pkgmgrinfo_appinfo_get_appid(handle, &app_id))
     return PMINFO_R_ERROR;
-  }
 
   char* icon_text = nullptr;
   if (pkgmgrinfo_appinfo_get_icon(handle, &icon_text))
@@ -38,14 +32,16 @@ int PkgmgrAppInfoCallback(const pkgmgrinfo_appinfo_h handle,
 
   if (!mfx->root_path) {
     char *root_path = nullptr;
-    if (pkgmgrinfo_appinfo_get_root_path(handle, &root_path)) {
-      free(application);
+    if (pkgmgrinfo_appinfo_get_root_path(handle, &root_path))
       return PMINFO_R_ERROR;
-    }
     mfx->root_path = strdup(root_path);
   }
 
-  application->appid = strdup(app_id);
+  application_x* application =
+      static_cast<application_x*>(calloc(1, sizeof(application_x)));
+  if (!application)
+    return PMINFO_R_ERROR;
+
   if (icon_text) {
     icon_x* icon = static_cast<icon_x*>(calloc(1, sizeof(icon_x)));
     if (!icon) {
@@ -55,6 +51,7 @@ int PkgmgrAppInfoCallback(const pkgmgrinfo_appinfo_h handle,
     icon->text = strdup(icon_text);
     application->icon = g_list_append(application->icon, icon);
   }
+  application->appid = strdup(app_id);
   mfx->application = g_list_append(mfx->application, application);
 
   return PMINFO_R_OK;