diff options
author | emersion <contact@emersion.fr> | 2019-02-15 00:50:18 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-02-15 00:50:18 +0100 |
commit | d238cc9f56d44061db1a92373d71f4c1f503b3e4 (patch) | |
tree | c92a7a118729d2a4646d28c1c55d301c92ad6bae | |
parent | 69b9e2ae8fd6ae01cf57115409960ff08cae96ad (diff) |
surface: error out on invalid transform
-rw-r--r-- | types/wlr_surface.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/types/wlr_surface.c b/types/wlr_surface.c index 148b434d..de63bdae 100644 --- a/types/wlr_surface.c +++ b/types/wlr_surface.c @@ -450,15 +450,20 @@ static void surface_commit(struct wl_client *client, } static void surface_set_buffer_transform(struct wl_client *client, - struct wl_resource *resource, int transform) { + struct wl_resource *resource, int32_t transform) { + if (transform < WL_OUTPUT_TRANSFORM_NORMAL || + transform > WL_OUTPUT_TRANSFORM_FLIPPED_270) { + wl_resource_post_error(resource, WL_SURFACE_ERROR_INVALID_TRANSFORM, + "Specified transform value (%d) is invalid", transform); + return; + } struct wlr_surface *surface = wlr_surface_from_resource(resource); surface->pending.committed |= WLR_SURFACE_STATE_TRANSFORM; surface->pending.transform = transform; } static void surface_set_buffer_scale(struct wl_client *client, - struct wl_resource *resource, - int32_t scale) { + struct wl_resource *resource, int32_t scale) { if (scale <= 0) { wl_resource_post_error(resource, WL_SURFACE_ERROR_INVALID_SCALE, "Specified scale value (%d) is not positive", scale); |