diff --git a/types/wlr_layer_shell_v1.c b/types/wlr_layer_shell_v1.c index 37256db6c..fd19a6743 100644 --- a/types/wlr_layer_shell_v1.c +++ b/types/wlr_layer_shell_v1.c @@ -130,6 +130,12 @@ static void layer_surface_handle_set_size(struct wl_client *client, return; } + if (width > INT32_MAX || height > INT32_MAX) { + wl_client_post_implementation_error(client, + "zwlr_layer_surface_v1.set_size: width and height can't be greater than INT32_MAX"); + return; + } + if (surface->current.desired_width == width && surface->current.desired_height == height) { surface->pending.committed &= ~WLR_LAYER_SURFACE_V1_STATE_DESIRED_SIZE;