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>
This commit is contained in:
Derek Foreman 2016-02-09 16:29:49 -06:00 committed by Bryce Harrington
parent ed5f5030ca
commit 1d6e885b1d

View file

@ -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;
}