summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Bradford <rob@linux.intel.com>2013-04-04 17:26:57 +0100
committerKristian Høgsberg <krh@bitplanet.net>2013-04-04 12:39:57 -0400
commit9fbcc7ae7dbbca215d0a1edcede4b7cc95ced7f2 (patch)
tree9e9cf8663a6979c9b21ef55ef60d0b30c000abed
parent477dcd84c7b350ebdc5da1e2243cbcd2abfbdc80 (diff)
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.
-rw-r--r--src/wayland-client.c6
1 files changed, 5 insertions, 1 deletions
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);