[Content] Fixed memory leaks.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 24 Aug 2015 09:12:52 +0000 (11:12 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 24 Aug 2015 09:39:47 +0000 (18:39 +0900)
Prevent CIDs: 435866, 435892, 435893, 435906, 435939

[Verification] TCT pass rate (r35): 100% (230/230/0/0/0)

Change-Id: I381fb39f0388dd3a3eca3710fdffe8dccdb6eaf9
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
src/content/content_manager.cc

index 60fcafd06672da7ca8075cce6f33852acdedbaa3..e11670b298a3d52bb93288719d1a7c6dc506b680 100755 (executable)
@@ -977,6 +977,7 @@ int ContentManager::updateBatch(picojson::value args) {
     if (media != NULL && ret == MEDIA_CONTENT_ERROR_NONE) {
       setContent(media, content);
       ret = media_info_update_to_db(media);
+      media_info_destroy(media);
     } else {
       return ret;
     }
@@ -1073,6 +1074,12 @@ void ContentManager::playlistGet(const std::shared_ptr<ReplyCallbackData>& user_
   media_content_order_e order = MEDIA_CONTENT_ORDER_ASC;
   const std::string playOrder("play_order");
 
+  SCOPE_EXIT {
+    if (playlist) {
+      media_playlist_destroy(playlist);
+    }
+  };
+
   std::string playlist_id = user_data->args.get("playlistId").get<std::string>();
   int ret = media_playlist_get_playlist_from_db(std::stoi(playlist_id), &playlist);
   if(ret != MEDIA_CONTENT_ERROR_NONE && playlist == NULL) {
@@ -1122,6 +1129,12 @@ void ContentManager::playlistRemovebatch(const std::shared_ptr<ReplyCallbackData
   LoggerD("Enter");
   media_playlist_h playlist = NULL;
 
+  SCOPE_EXIT {
+    if (playlist) {
+      media_playlist_destroy(playlist);
+    }
+  };
+
   std::string playlist_id = user_data->args.get("playlistId").get<std::string>();
   int ret = media_playlist_get_playlist_from_db(std::stoi(playlist_id), &playlist);
   if(ret != MEDIA_CONTENT_ERROR_NONE && playlist == NULL) {
@@ -1154,6 +1167,12 @@ void ContentManager::playlistSetOrder(const std::shared_ptr<ReplyCallbackData>&
   LoggerD("Enter");
   media_playlist_h playlist = NULL;
 
+  SCOPE_EXIT {
+    if (playlist) {
+      media_playlist_destroy(playlist);
+    }
+  };
+
   std::string playlist_id = user_data->args.get("playlistId").get<std::string>();
   int ret = media_playlist_get_playlist_from_db(std::stoi(playlist_id), &playlist);
   if(ret != MEDIA_CONTENT_ERROR_NONE && playlist == NULL) {
@@ -1200,6 +1219,13 @@ void ContentManager::playlistSetOrder(const std::shared_ptr<ReplyCallbackData>&
 void ContentManager::playlistMove(const std::shared_ptr<ReplyCallbackData>& user_data) {
   LoggerD("Enter");
   media_playlist_h playlist = NULL;
+
+  SCOPE_EXIT {
+    if (playlist) {
+      media_playlist_destroy(playlist);
+    }
+  };
+
   std::string playlist_id = user_data->args.get("playlistId").get<std::string>();
   int ret = media_playlist_get_playlist_from_db(std::stoi(playlist_id), &playlist);
   if(ret != MEDIA_CONTENT_ERROR_NONE && playlist == NULL) {