Fix memory leak 32/235232/2 accepted/tizen/unified/20200604.164549 submit/tizen/20200603.011259
authorMinje Ahn <minje.ahn@samsung.com>
Wed, 3 Jun 2020 02:30:49 +0000 (11:30 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Wed, 3 Jun 2020 04:02:51 +0000 (13:02 +0900)
Fix memory leak for below:
https://review.tizen.org/gerrit/c/platform/core/multimedia/libmedia-service/+/235209

Change-Id: I1c53f8d7885b82a22d77c763dbad9797726f3972
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/common/media-svc.c

index 60aab6b..484f289 100755 (executable)
@@ -529,22 +529,25 @@ int media_svc_refresh_item(sqlite3 *handle, bool is_direct, const char *storage_
        ret = _media_svc_update_item_with_data(is_direct, &content_info, uid);
 
        if (ret == MS_MEDIA_ERR_NONE) {
-               /* Except scanner case */
-               if (!is_direct) {
-                       media_svc_debug("Update is successful. Sending noti for this");
-                       _media_svc_publish_noti(MS_MEDIA_ITEM_UPDATE, content_info.path, noti_item->media_type, noti_item->media_uuid, noti_item->mime_type);
-               } else {
+               if (is_direct) {
                        /* To avoid over-occupying memory, update per BATCH_ITEM_COUNT_MAX. */
                        if (++g_media_svc_cur_data_cnt == BATCH_ITEM_COUNT_MAX) {
                                ret = _media_svc_list_query_do(MEDIA_SVC_QUERY_SCANNER, uid);
-                               media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
+                               if (ret != MS_MEDIA_ERR_NONE)
+                                       goto QUERY_ERROR;
+
                                g_media_svc_cur_data_cnt = 0;
                        }
+               } else {
+                       /* Except scanner case */
+                       media_svc_debug("Update is successful. Sending noti for this");
+                       _media_svc_publish_noti(MS_MEDIA_ITEM_UPDATE, content_info.path, noti_item->media_type, noti_item->media_uuid, noti_item->mime_type);
                }
        } else {
                media_svc_error("_media_svc_update_item_with_data failed : %d", ret);
        }
 
+QUERY_ERROR:
        _media_svc_destroy_content_info(&content_info);
        _media_svc_destroy_noti_item(noti_item);