diff options
author | Rob Bradford <rob@linux.intel.com> | 2013-04-04 17:26:57 +0100 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-04-04 12:39:57 -0400 |
commit | 9fbcc7ae7dbbca215d0a1edcede4b7cc95ced7f2 (patch) | |
tree | 9e9cf8663a6979c9b21ef55ef60d0b30c000abed | |
parent | 477dcd84c7b350ebdc5da1e2243cbcd2abfbdc80 (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.c | 6 |
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); |