elementary: fix double free 32/286932/2
authorHosang Kim <hosang12.kim@samsung.com>
Tue, 17 Jan 2023 05:19:13 +0000 (14:19 +0900)
committerkim hosang <hosang12.kim@samsung.com>
Tue, 17 Jan 2023 08:09:45 +0000 (08:09 +0000)
use ELM_SAFE_FREE for preventing double free.

Change-Id: Ib37cf930035cd4b7a0cd52a0347cbc3d1d71c953

src/lib/elementary/elm_conform.c
src/lib/elementary/elm_plug.c

index a9689d6..734bbe6 100644 (file)
@@ -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);
 
index 7ca4663..25d72c8 100644 (file)
@@ -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);
 }