Fix static analysis issue 69/289869/2
authorilho kim <ilho159.kim@samsung.com>
Wed, 15 Mar 2023 03:32:46 +0000 (12:32 +0900)
committerilho kim <ilho159.kim@samsung.com>
Wed, 15 Mar 2023 04:34:05 +0000 (13:34 +0900)
Fix resource leak

Change-Id: I63816552cf432f3c9c1eee8eac1c62a6e4b1fdfa
Signed-off-by: ilho kim <ilho159.kim@samsung.com>
src/server/appinfo_internal.cc

index e6babbc..aa20fcb 100644 (file)
@@ -662,6 +662,9 @@ int DoGetAppInfo(const tizen_base::Database& db, uid_t db_uid, uid_t uid,
       tmp_record = GetCString(idx++, rec);
       if (_add_label_info_into_list(locale, tmp_record,
           &info->label)) {
+        if (tmp_record)
+          free(tmp_record);
+
         return PMINFO_R_ERROR;
       }
     }
@@ -670,14 +673,23 @@ int DoGetAppInfo(const tizen_base::Database& db, uid_t db_uid, uid_t uid,
       tmp_record = GetCString(idx++, rec);
       if (_add_icon_info_into_list(locale, tmp_record,
           &info->icon)) {
+        if (tmp_record)
+          free(tmp_record);
+
         return PMINFO_R_ERROR;
       }
     }
 
     if (pkg_disable_filter_statue != PackageDisableFilterStatus::None) {
       tmp_record = GetCString(idx++, rec);
-      if (!CheckPkgDisableFilter(pkg_disable_filter_statue, tmp_record, info))
-        continue;
+      if (tmp_record) {
+        bool filter_passed = CheckPkgDisableFilter(pkg_disable_filter_statue,
+            tmp_record, info);
+        free(tmp_record);
+
+        if (!filter_passed)
+          continue;
+      }
     }
 
     if (flag & PMINFO_APPINFO_GET_CATEGORY) {