From 64c8bded2c41f383ad8a90cee482b6bdcd1a01a3 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Wed, 13 Jan 2021 19:05:33 +0900 Subject: [PATCH] video: Fix segfaults running render job with deleted E_Client Rendering job relies on 'comp_data' field of E_Client, and 'comp_data' gets invalid at some point after E_Client is deleted. Since there is no way to know when 'comp_data' gets invalid exactly, it checks if E_Client is deleted whenever render job is needed. Change-Id: I472abb606795540fbd79f55cf2323596a244c4e2 --- src/bin/video/iface/e_video_hwc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/video/iface/e_video_hwc.c b/src/bin/video/iface/e_video_hwc.c index a28ac107e5..f27a6d5b8c 100644 --- a/src/bin/video/iface/e_video_hwc.c +++ b/src/bin/video/iface/e_video_hwc.c @@ -1176,6 +1176,9 @@ _e_video_hwc_render_job(void *data) evh = data; evh->render.job = NULL; + if (e_object_is_del(E_OBJECT(evh->ec))) + return; + if (evh->render.map) { evh->render.map = EINA_FALSE; -- 2.34.1