From 641c223d3cf9a8678a579085a1355c22c1793eef Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Mon, 15 Feb 2021 15:32:11 +0100
Subject: 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;
 	}
 
-- 
cgit v1.2.3