From 9fbcc7ae7dbbca215d0a1edcede4b7cc95ced7f2 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Thu, 4 Apr 2013 17:26:57 +0100 Subject: [PATCH] wayland-client: Avoid null dereference when handling deletion 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 ada4d5e3..7847370e 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);