From 1fe594806d3fdd2a3ce8979f3ea70bd5d6910d3d Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Wed, 3 Jan 2024 14:38:30 +0900 Subject: [PATCH] e_comp_wl_buffer: Fix null dereference The return value of ds_buffer_get_resource() can be null if the wl_resource of wl_buffer has been destroyed. This patch addresses this issue by properly checking for a null return value and handling it accordingly. Change-Id: I3c4afe568d2c44f051db8bc5762f10207f558f84 --- src/bin/e_comp_wl_buffer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bin/e_comp_wl_buffer.c b/src/bin/e_comp_wl_buffer.c index 0197e0c..a5f52aa 100644 --- a/src/bin/e_comp_wl_buffer.c +++ b/src/bin/e_comp_wl_buffer.c @@ -168,6 +168,9 @@ _e_comp_wl_buffer_init(E_Comp_Wl_Buffer *base, struct ds_buffer *ds_buffer) struct wl_resource *resource; resource = ds_buffer_get_resource(ds_buffer); + if (!resource) + return EINA_FALSE; + shmbuff = wl_shm_buffer_get(resource); if (shmbuff) { @@ -263,6 +266,9 @@ _e_buffer_from_buffer(struct ds_buffer *ds_buffer) struct wl_listener *listener; resource = ds_buffer_get_resource(ds_buffer); + if (!resource) + return NULL; + listener = wl_resource_get_destroy_listener(resource, _e_buffer_cb_resource_destroy); if (listener) return wl_container_of(listener, buffer, base.destroy_listener); -- 2.7.4