Fixed NULL pointer dereference. 05/198905/3
authorjinwang.an <jinwang.an@samsung.com>
Thu, 31 Jan 2019 02:47:31 +0000 (11:47 +0900)
committerjinwang.an <jinwang.an@samsung.com>
Tue, 12 Feb 2019 08:01:57 +0000 (17:01 +0900)
 - _get_user_ringtones()

Change-Id: Id87f729fef2c659d8ae0f51d96d695dec7005cee
Signed-off-by: jinwang.an <jinwang.an@samsung.com>
src/system_setting_platform.c

index e631b2c0e8e27a68d2b88b2ea79cafbd2a4001bf..a04cb886583311646d0739396c034f8f66d78897 100644 (file)
@@ -443,6 +443,10 @@ static void _get_user_ringtones(system_settings_key_e key, system_settings_iter_
 {
        SETTING_TRACE_BEGIN;
 
+       if (callback == NULL) {
+               SETTING_TRACE("--> callback is NULL");
+               return;
+       }
 #ifdef USE_JSONFILE
        // NOT IN USE
        JsonParser* parser = ss_json_ringtone_open_file(JSONFILE);
@@ -458,8 +462,8 @@ static void _get_user_ringtones(system_settings_key_e key, system_settings_iter_
                JsonObject *ringtone = json_array_get_object_element(json_node_get_array(root), i);
                char *nameval = (char *)json_object_get_string_member(ringtone, "name");
                char *pathval = (char *)json_object_get_string_member(ringtone, "path");
-               SETTING_TRACE("(%s) --- (%s) \n", nameval, pathval);
-               if (callback) {
+               if (pathval && nameval) {
+                       SETTING_TRACE("(%s) --- (%s) \n", nameval, pathval);
                        char* path = strdup(pathval);
                        bool ret = callback(i, (void *)(path), data);
                        if (ret == false) {
@@ -467,7 +471,7 @@ static void _get_user_ringtones(system_settings_key_e key, system_settings_iter_
                                break;
                        }
                } else {
-                       SETTING_TRACE("--> callback is NULL");
+                       SETTING_TRACE("--> pathval or nameval is NULL");
                }
        }
 }