From eed3ed06aea331bf57193e268665081aa5653803 Mon Sep 17 00:00:00 2001 From: Hosang Kim Date: Tue, 17 Jan 2023 14:19:13 +0900 Subject: [PATCH] elementary: fix double free use ELM_SAFE_FREE for preventing double free. Change-Id: Ib37cf930035cd4b7a0cd52a0347cbc3d1d71c953 --- src/lib/elementary/elm_conform.c | 12 ++++++------ src/lib/elementary/elm_plug.c | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c index a9689d6..734bbe6 100644 --- a/src/lib/elementary/elm_conform.c +++ b/src/lib/elementary/elm_conform.c @@ -1592,12 +1592,12 @@ _elm_conformant_efl_canvas_group_group_del(Eo *obj, Elm_Conformant_Data *sd) ecore_event_handler_del(sd->prop_hdl); #endif - ecore_job_del(sd->show_region_job); - ecore_timer_del(sd->port_indi_timer); - ecore_timer_del(sd->land_indi_timer); - evas_object_del(sd->portrait_indicator); - evas_object_del(sd->landscape_indicator); - evas_object_del(sd->indicator); + if (sd->show_region_job) ELM_SAFE_FREE(sd->show_region_job, ecore_job_del); + if (sd->port_indi_timer) ELM_SAFE_FREE(sd->port_indi_timer, ecore_timer_del); + if (sd->land_indi_timer) ELM_SAFE_FREE(sd->land_indi_timer, ecore_timer_del); + if (sd->portrait_indicator) ELM_SAFE_FREE(sd->portrait_indicator, evas_object_del); + if (sd->landscape_indicator) ELM_SAFE_FREE(sd->indicator, evas_object_del); + if (sd->indicator) ELM_SAFE_FREE(sd->indicator, evas_object_del); evas_object_data_set(sd->win, "\377 elm,conformant", NULL); diff --git a/src/lib/elementary/elm_plug.c b/src/lib/elementary/elm_plug.c index 7ca4663..25d72c8 100644 --- a/src/lib/elementary/elm_plug.c +++ b/src/lib/elementary/elm_plug.c @@ -210,7 +210,8 @@ _on_widget_del(void *data, const Efl_Event *event) _proxy_widget_move_cb, plug); evas_object_event_callback_del_full(event->object, EVAS_CALLBACK_RESIZE, _proxy_widget_resize_cb, plug); - ecore_event_handler_del(_atspi_bridge_ready_handler); + if (_atspi_bridge_ready_handler) + ELM_SAFE_FREE(_atspi_bridge_ready_handler, ecore_event_handler_del); efl_access_object_attribute_del(event->object, "child_bus"); efl_del(plug); } -- 2.7.4