Fix memory leak issue found by static analyzer 64/79564/1 accepted/tizen/common/20160712.150639 accepted/tizen/ivi/20160712.043432 accepted/tizen/mobile/20160712.043302 accepted/tizen/tv/20160712.043326 accepted/tizen/wearable/20160712.043358 submit/tizen/20160712.015213
authorJiyong Min <jiyong.min@samsung.com>
Tue, 12 Jul 2016 00:52:19 +0000 (09:52 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Tue, 12 Jul 2016 00:53:47 +0000 (09:53 +0900)
Change-Id: I356c41ef7f852a4b1630ff3fd04b9ddac6b07801
Signed-off-by: Jiyong Min <jiyong.min@samsung.com>
packaging/libmedia-service.spec
src/common/media-svc-storage.c
src/include/common/media-svc-util.h

index 91f3e07..7b196b5 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmedia-service
 Summary:    Media information service library for multimedia applications
-Version: 0.2.75
+Version: 0.2.76
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0 and public domain
index cbaed52..5c9e78b 100755 (executable)
@@ -140,18 +140,25 @@ int _media_svc_update_storage_path(sqlite3 *handle, const char *storage_id, cons
        sql = sqlite3_mprintf("UPDATE '%s' SET storage_path=%Q WHERE storage_uuid=%Q;", MEDIA_SVC_DB_TABLE_STORAGE, path, storage_id);
        ret = _media_svc_sql_query(sql, uid);
        sqlite3_free(sql);
-       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               G_SAFE_FREE(old_storage_path);
+               return ret;
+       }
 
        /*Folder table update*/
        sql = sqlite3_mprintf("UPDATE '%s' SET path=REPLACE(path, %Q, %Q) WHERE storage_uuid=%Q;", MEDIA_SVC_DB_TABLE_FOLDER, old_storage_path, path, storage_id);
        ret = _media_svc_sql_query(sql, uid);
        sqlite3_free(sql);
-       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               G_SAFE_FREE(old_storage_path);
+               return ret;
+       }
 
        /*Media table update*/
        sql = sqlite3_mprintf("UPDATE '%s' SET path=REPLACE(path, %Q, %Q);", storage_id, old_storage_path, path);
        ret = _media_svc_sql_query(sql, uid);
        sqlite3_free(sql);
+       G_SAFE_FREE(old_storage_path);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
        return ret;
index 4b7474f..1ffc7b5 100755 (executable)
@@ -43,6 +43,7 @@ extern "C" {
 #endif
 
 #define SAFE_FREE(src) { if (src) {free(src); src = NULL;}}
+#define G_SAFE_FREE(src)       { if (src) {g_free(src); src = NULL;}}
 #define STRING_VALID(str)      \
        ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)