summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2016-02-09 16:29:49 -0600
committerBryce Harrington <bryce@osg.samsung.com>2016-03-08 16:55:02 -0800
commit1d6e885b1dd7e481c7975f6641632ef107163482 (patch)
treebfb488df2ede1273f274c4d62db191942e96b3ef
parented5f5030cae66576b081f261afb6233ec634f287 (diff)
downloadwayland-1d6e885b1dd7e481c7975f6641632ef107163482.tar.gz
shm: Log a warning if a shm buffer address is requested when it may be invalid
If wl_shm_buffer_get_data() is called on a shm pool that has an external reference and a pending resize, then the buffer may be outside the pool's current mapping. Log a warning if this happens. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-rw-r--r--src/wayland-shm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/wayland-shm.c b/src/wayland-shm.c
index be3dd3f..5efbd70 100644
--- a/src/wayland-shm.c
+++ b/src/wayland-shm.c
@@ -387,6 +387,11 @@ wl_shm_buffer_get_data(struct wl_shm_buffer *buffer)
if (!buffer->pool)
return NULL;
+ if (buffer->pool->external_refcount &&
+ (buffer->pool->size != buffer->pool->new_size))
+ wl_log("Buffer address requested when its parent pool "
+ "has an external reference and a deferred resize "
+ "pending.\n");
return buffer->pool->data + buffer->offset;
}