From: Seunghun Lee Date: Thu, 30 Jan 2020 01:39:39 +0000 (+0900) Subject: video: Remove listener's link after checking that comp_data is valid. X-Git-Tag: submit/tizen/20200206.060445~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=31e2d546e5d0962551c97833efde70174219255d;p=platform%2Fupstream%2Fenlightenment.git video: Remove listener's link after checking that comp_data is valid. Otherwise, it can make memory corrupted. Change-Id: Iabb5044cd384482db1168def09b5f669700835e4 --- diff --git a/src/bin/video/iface/e_video_hwc.c b/src/bin/video/iface/e_video_hwc.c index 93fdcce9cf..00572cb2fe 100644 --- a/src/bin/video/iface/e_video_hwc.c +++ b/src/bin/video/iface/e_video_hwc.c @@ -1646,8 +1646,11 @@ _e_video_hwc_client_event_init(E_Video_Hwc *evh) { /* In order to try to redraw video whenever viewport changes. */ evh->surface_viewport_listener.notify = _e_video_hwc_cb_surface_viewport; - wl_signal_add(&evh->ec->comp_data->apply_viewport_signal, - &evh->surface_viewport_listener); + if (evh->ec->comp_data) + { + wl_signal_add(&evh->ec->comp_data->apply_viewport_signal, + &evh->surface_viewport_listener); + } evas_object_event_callback_add(evh->ec->frame, EVAS_CALLBACK_SHOW, _e_video_hwc_cb_evas_show, evh); @@ -1665,7 +1668,9 @@ _e_video_hwc_client_event_init(E_Video_Hwc *evh) static void _e_video_hwc_client_event_deinit(E_Video_Hwc *evh) { - wl_list_remove(&evh->surface_viewport_listener.link); + /* links for listener have to be removed only in case comp_data is valid. */ + if (evh->ec->comp_data) + wl_list_remove(&evh->surface_viewport_listener.link); evas_object_event_callback_del_full(evh->ec->frame, EVAS_CALLBACK_SHOW, _e_video_hwc_cb_evas_show, evh);