From 641c223d3cf9a8678a579085a1355c22c1793eef Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 15 Feb 2021 15:32:11 +0100 Subject: [PATCH] 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 --- types/wlr_surface.c | 9 ++++++--- 1 file 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; }