From 24665a526a8d05f674d4d75e0fe7d5c65593a2f6 Mon Sep 17 00:00:00 2001 From: "jinwang.an" Date: Thu, 31 Jan 2019 11:47:31 +0900 Subject: [PATCH] Fixed NULL pointer dereference. - _get_user_ringtones() Change-Id: Id87f729fef2c659d8ae0f51d96d695dec7005cee Signed-off-by: jinwang.an --- src/system_setting_platform.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/system_setting_platform.c b/src/system_setting_platform.c index e631b2c..a04cb88 100644 --- a/src/system_setting_platform.c +++ b/src/system_setting_platform.c @@ -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"); } } } -- 2.34.1