[PATCH wayland] wayland-client: Avoid null dereference when handling deletion

Rob Bradford robert.bradford at intel.com
Thu Apr 4 09:26:57 PDT 2013


From: Rob Bradford <rob at linux.intel.com>

If an unknown id is deleted then the lookup in the map will return NULL and
so we should avoid dereferencing that.

As this is unexpected behaviour log a message about the problem too.
---
 src/wayland-client.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/wayland-client.c b/src/wayland-client.c
index ada4d5e..7847370 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -415,7 +415,11 @@ display_handle_delete_id(void *data, struct wl_display *display, uint32_t id)
 	pthread_mutex_lock(&display->mutex);
 
 	proxy = wl_map_lookup(&display->objects, id);
-	if (proxy != WL_ZOMBIE_OBJECT)
+
+	if (!proxy)
+		wl_log("error: received delete_id for unknown id (%u)\n", id);
+
+	if (proxy && proxy != WL_ZOMBIE_OBJECT)
 		proxy->flags |= WL_PROXY_FLAG_ID_DELETED;
 	else
 		wl_map_remove(&display->objects, id);
-- 
1.8.1.4



More information about the wayland-devel mailing list