Add NULL check before calling callback to create ringtone list. 30/173830/4 accepted/tizen/unified/20180416.213732 submit/tizen/20180413.075303
authorjinwang.an <jinwang.an@samsung.com>
Mon, 26 Mar 2018 08:00:17 +0000 (17:00 +0900)
committerjinwang.an <jinwang.an@samsung.com>
Fri, 13 Apr 2018 07:43:24 +0000 (16:43 +0900)
Change-Id: I1489ce13506ef236227a501db023857e8a1420df
Signed-off-by: jinwang.an <jinwang.an@samsung.com>
src/system_setting_platform.c

index b03fd57..ce0b0c3 100644 (file)
@@ -461,17 +461,20 @@ static void _get_user_ringtones(system_settings_key_e key, system_settings_iter_
                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 (callback && pathval) {
                        char* path = strdup(pathval);
                        bool ret = callback(i, (void *)(path), data);
                        if (ret == false) {
                                SETTING_TRACE("quit the iteration by return value == false : %d", ret);
                                break;
                        }
+                       FREE(path);
                } else {
                        SETTING_TRACE("--> callback is NULL");
                }
        }
+
+       g_object_unref(parser);
 }
 
 int system_setting_list_incoming_call_ringtone(system_settings_key_e key, system_settings_iter_cb callback, void *data)