From 31e2d546e5d0962551c97833efde70174219255d Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Thu, 30 Jan 2020 10:39:39 +0900 Subject: [PATCH] video: Remove listener's link after checking that comp_data is valid. Otherwise, it can make memory corrupted. Change-Id: Iabb5044cd384482db1168def09b5f669700835e4 --- src/bin/video/iface/e_video_hwc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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); -- 2.34.1