diff options
author | Simon Ser <contact@emersion.fr> | 2021-02-15 15:32:11 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-02-17 10:47:54 +0100 |
commit | 641c223d3cf9a8678a579085a1355c22c1793eef (patch) | |
tree | 504c93a3fa41b12b3525bc2409ea58a77b46f393 | |
parent | 25302351392119b619988ca362b8695f613fedcb (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.c | 9 |
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; } |