[PATCH wayland] shm: Log a warning if a shm buffer address is requested when it may be invalid

Derek Foreman derekf at osg.samsung.com
Tue Feb 9 22:29:49 UTC 2016


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 at osg.samsung.com>
---
 src/wayland-shm.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/wayland-shm.c b/src/wayland-shm.c
index 6351259..7c67575 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;
 }
 
-- 
2.7.0



More information about the wayland-devel mailing list