summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2020-11-27 15:41:17 +0100
committerJonas Ådahl <jadahl@gmail.com>2020-11-27 17:47:35 +0100
commitf5949af0bbbb84931382aeabc8dadd2c4e82b8e4 (patch)
tree50fa27f415979262d4b9fa872d8e46ae2c7ed431
parent8b6ea12fac49552e960bc8b8f64ea3ef10addb06 (diff)
downloadmutter-f5949af0bbbb84931382aeabc8dadd2c4e82b8e4.tar.gz
barrier: Complain loudly if bogus barriers are created
The API allows for invalid barriers to be created; in an X11 session, this could result in involutary early exit, so guard against those with soft asserts. These will be logged in the journal as warnings, but will avoid the crash unless compiled out. Note that this doesn't fix the bug, it just makes it more detectable. Related: https://bugzilla.redhat.com/show_bug.cgi?id=1901610 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1611>
-rw-r--r--src/backends/meta-barrier.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backends/meta-barrier.c b/src/backends/meta-barrier.c
index 71536c3d7..ea2a77c20 100644
--- a/src/backends/meta-barrier.c
+++ b/src/backends/meta-barrier.c
@@ -180,6 +180,10 @@ meta_barrier_constructed (GObject *object)
g_return_if_fail (priv->border.line.a.x == priv->border.line.b.x ||
priv->border.line.a.y == priv->border.line.b.y);
+ g_return_if_fail (priv->border.line.a.x >= 0);
+ g_return_if_fail (priv->border.line.a.y >= 0);
+ g_return_if_fail (priv->border.line.b.x >= 0);
+ g_return_if_fail (priv->border.line.b.y >= 0);
#if defined(HAVE_NATIVE_BACKEND)
if (META_IS_BACKEND_NATIVE (meta_get_backend ()))