From: Shinwoo Kim Date: Thu, 28 Sep 2017 11:45:07 +0000 (+0900) Subject: elementary: atspi - fix dbus abort X-Git-Tag: submit/tizen_3.0/20171019.130042~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eed092f2bd44545fd23dc55ede66be77b6eaf36d;p=platform%2Fupstream%2Felementary.git elementary: atspi - fix dbus abort This patch set fix following abort occured on dbus side. (gdb) bt 0 __GI_raise (sig=sig@entry=6) 1 __GI_abort () 2 _dbus_abort () 3 _dbus_warn_check_failed 4 dbus_message_iter_append_basic 5 append_basic 6 eldbus_message_iter_basic_append 7 _bridge_signal_send 8 _text_text_removed_send 9 _bridge_accessible_event_dispatch 10 _elm_interface_atspi_accessible_event_emit 11 elm_interface_atspi_accessible_event_emit 12 _entry_changed_user_signal_cb (gdb) f 12 (gdb) p *$1 $2 = {change = {insert = {content = 0x0, pos = 0, plain_length = 1}, del = {content = 0x0, start = 0, end = 1}}, insert = 0 '\000', merge = 0 '\000'} The following patch set would fix the root cause of this problem. https://phab.enlightenment.org/D5240 Change-Id: I00d36b818749693194a69c10bd80353e47796238 --- diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index 88e1e0dce..2afee458a 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -5907,6 +5907,12 @@ _text_text_inserted_send(void *data, Eo *obj, const Eo_Event_Description *desc E if (!STATE_TYPE_GET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_TEXT_CHANGED)) return EINA_TRUE; + if (!info->content) + { + WRN("Try to send signal with NULL value"); + return EINA_TRUE; + } + _bridge_signal_send(data, obj, ATSPI_DBUS_INTERFACE_EVENT_OBJECT, &_event_obj_signals[ATSPI_OBJECT_EVENT_TEXT_CHANGED], "insert", info->pos, info->len, "s", info->content); @@ -5923,6 +5929,12 @@ _text_text_removed_send(void *data, Eo *obj, const Eo_Event_Description *desc EI if (!STATE_TYPE_GET(pd->object_broadcast_mask, ATSPI_OBJECT_EVENT_TEXT_CHANGED)) return EINA_TRUE; + if (!info->content) + { + WRN("Try to send signal with NULL value"); + return EINA_TRUE; + } + _bridge_signal_send(data, obj, ATSPI_DBUS_INTERFACE_EVENT_OBJECT, &_event_obj_signals[ATSPI_OBJECT_EVENT_TEXT_CHANGED], "delete", info->pos, info->len, "s", info->content);