Efl.Ui.Animation_View: remove double free 68/204168/2
authorShinwoo Kim <cinoo.kim@samsung.com>
Mon, 22 Apr 2019 02:53:50 +0000 (11:53 +0900)
committerHermet Park <chuneon.park@samsung.com>
Tue, 23 Apr 2019 00:36:49 +0000 (00:36 +0000)
Following step makes SIGABORT by double free.
   1. elm_animation_view_add
   2. elm_animation_view_file_set
   3. evas_object_del

The first free occurs in
(gdb) bt
#0  eina_stringshare_del
#1  _efl_ui_animation_view_efl_canvas_group_group_del
#2  efl_canvas_group_del
#3  evas_object_smart_del
#4  _efl_canvas_object_efl_object_invalidate
#5  efl_invalidate
#6  _efl_ui_widget_efl_object_invalidate
#7  efl_invalidate
#8  _efl_invalidate
#9  _efl_object_parent_set
#10 efl_parent_set
#11 efl_parent_set
#12 efl_del
#13 elm_main
#14 main

the second free occurs in
(gdb) bt
#0  eina_stringshare_del
#1  _efl_file_efl_object_destructor
#2  efl_destructor
#3  efl_destructor
#4  _efl_del_internal
#5  _efl_unref_internal
#6  efl_del
#7  evas_object_del
#8  _efl_ui_widget_efl_canvas_group_group_del
#9  efl_canvas_group_del
#10 efl_canvas_group_del
#11 evas_object_smart_del
#12 _efl_canvas_object_efl_object_invalidate
#13 efl_invalidate
#14 _efl_ui_widget_efl_object_invalidate
#15 efl_invalidate
#16 _efl_invalidate
#17 _efl_object_parent_set
#18 efl_parent_set
#19 efl_parent_set
#20 efl_del
#21 elm_main
#22 main

Change-Id: Iabedaacc6fc82f87e5d4d78bc4a20030419148aa

src/lib/elementary/efl_ui_animation_view.c

index c000459..ef5bd2a 100644 (file)
@@ -208,7 +208,6 @@ _efl_ui_animation_view_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Animation_View
 EOLIAN static void
 _efl_ui_animation_view_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Animation_View_Data *pd EINA_UNUSED)
 {
-   if (pd->file) eina_stringshare_del(pd->file);
    if (pd->transit)
      {
         Elm_Transit *transit = pd->transit;