aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-02-15 15:32:11 +0100
committerSimon Ser <contact@emersion.fr>2021-02-17 10:47:54 +0100
commit641c223d3cf9a8678a579085a1355c22c1793eef (patch)
tree504c93a3fa41b12b3525bc2409ea58a77b46f393
parent25302351392119b619988ca362b8695f613fedcb (diff)
surface: don't send protocol error on invalid buffer size
A libwayland-cursor bug [1] makes many clients crash. [1]: https://gitlab.freedesktop.org/wayland/wayland/-/issues/194 Fixes: 91fa2ff3959a ("surface: check buffer size is compatible with scale") Closes: https://github.com/swaywm/sway/issues/6014
-rw-r--r--types/wlr_surface.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/types/wlr_surface.c b/types/wlr_surface.c
index 6ad0f710..7d567c9c 100644
--- a/types/wlr_surface.c
+++ b/types/wlr_surface.c
@@ -182,9 +182,12 @@ static bool surface_state_finalize(struct wlr_surface *surface,
if (!state->viewport.has_src &&
(state->buffer_width % state->scale != 0 ||
state->buffer_height % state->scale != 0)) {
- wl_resource_post_error(surface->resource,
- WL_SURFACE_ERROR_INVALID_SIZE,
- "Buffer size not divisible by scale");
+ // TODO: send WL_SURFACE_ERROR_INVALID_SIZE error once this issue is
+ // resolved:
+ // https://gitlab.freedesktop.org/wayland/wayland/-/issues/194
+ wlr_log(WLR_DEBUG, "Client bug: submitted a buffer whose size (%dx%d) "
+ "is not divisible by scale (%d)", state->buffer_width,
+ state->buffer_height, state->scale);
return false;
}