Fix prevent issue. memory leak 52/49352/2 accepted/tizen/mobile/20151013.040527 accepted/tizen/tv/20151013.040541 accepted/tizen/wearable/20151013.040553 submit/tizen/20151013.015557
authorHaejeong, Kim <backto.kim@samsung.com>
Tue, 13 Oct 2015 01:35:11 +0000 (10:35 +0900)
committerHaejeong, Kim <backto.kim@samsung.com>
Tue, 13 Oct 2015 01:36:43 +0000 (10:36 +0900)
Change-Id: Ia292351dc5f27e50e22be26d0fbecb6c642be7cb

packaging/capi-media-controller.spec
svc/media_controller_db_util.c

index d71e2acf1528e6d228cb767a8d963e512bfdfaf1..81d5c1050927271f062cfcd773ba37ba3dfd95de 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-controller
 Summary:    Multimedia Controller for player application
-Version:    0.0.9
+Version:    0.0.10
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0
index 7601656081f2c906e04078aeac51814c582f20bc..a7a77c8afbf277ab59a7e2b82961edd58a493b12 100755 (executable)
@@ -127,7 +127,7 @@ static int __mc_create_server_list_table(sqlite3 *handle)
 
 static char* __mc_get_db_name(uid_t uid)
 {
-       char result_psswd[MC_FILE_PATH_LEN_MAX];
+       char result_psswd[MC_FILE_PATH_LEN_MAX] = {0, };
        char *result_psswd_rtn = NULL;
        struct group *grpinfo = NULL;
        char * dir = NULL;
@@ -186,19 +186,29 @@ int mc_db_util_connect(void **handle, uid_t uid, bool need_write)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        sqlite3 *db_handle = NULL;
-
+       char * db_name = NULL;
        mc_retvm_if(handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
 
+       *handle = NULL;
+
+       db_name = __mc_get_db_name(uid);
+
+       if (!MC_STRING_VALID(db_name)) {
+               mc_error("error when get db path");
+               return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
+       }
+
        /*Connect DB*/
        if(need_write) {
-               ret = db_util_open_with_options(__mc_get_db_name(uid), &db_handle, SQLITE_OPEN_READWRITE, NULL);
+               ret = db_util_open_with_options(db_name, &db_handle, SQLITE_OPEN_READWRITE, NULL);
        } else {
-               ret = db_util_open_with_options(__mc_get_db_name(uid), &db_handle, SQLITE_OPEN_READONLY, NULL);
+               ret = db_util_open_with_options(db_name, &db_handle, SQLITE_OPEN_READONLY, NULL);
        }
+
+       MC_SAFE_FREE(db_name);
+
        if (SQLITE_OK != ret) {
                mc_error("error when db open");
-               *handle = NULL;
-
                return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
        }
 
@@ -212,8 +222,6 @@ int mc_db_util_connect(void **handle, uid_t uid, bool need_write)
        if (SQLITE_OK != ret) {
                mc_error("error when register busy handler %s\n", sqlite3_errmsg(db_handle));
                db_util_close(db_handle);
-               *handle = NULL;
-
                return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
        }