From 752fc7fa124e236b428057662b037720a9ff3a3b Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Wed, 22 Apr 2026 10:36:45 +1200 Subject: [PATCH] Check positioner anchor and gravity enums Signed-off-by: Robert Ancell --- libweston/desktop/xdg-shell.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libweston/desktop/xdg-shell.c b/libweston/desktop/xdg-shell.c index 8ca5dd6f1..e02d8b51d 100644 --- a/libweston/desktop/xdg-shell.c +++ b/libweston/desktop/xdg-shell.c @@ -619,6 +619,13 @@ weston_desktop_xdg_positioner_protocol_set_anchor(struct wl_client *wl_client, struct weston_desktop_xdg_positioner *positioner = wl_resource_get_user_data(resource); + if (anchor > XDG_POSITIONER_ANCHOR_BOTTOM_RIGHT) { + wl_resource_post_error(resource, + XDG_POSITIONER_ERROR_INVALID_INPUT, + "anchor must be in the anchor enum"); + return; + } + positioner->anchor = anchor; } @@ -630,6 +637,13 @@ weston_desktop_xdg_positioner_protocol_set_gravity(struct wl_client *wl_client, struct weston_desktop_xdg_positioner *positioner = wl_resource_get_user_data(resource); + if (gravity > XDG_POSITIONER_GRAVITY_BOTTOM_RIGHT) { + wl_resource_post_error(resource, + XDG_POSITIONER_ERROR_INVALID_INPUT, + "gravity must be in the gravity enum"); + return; + } + positioner->gravity = gravity; }