summaryrefslogtreecommitdiff
path: root/repo/glib/gparamspec.patch
diff options
context:
space:
mode:
Diffstat (limited to 'repo/glib/gparamspec.patch')
-rw-r--r--repo/glib/gparamspec.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/repo/glib/gparamspec.patch b/repo/glib/gparamspec.patch
new file mode 100644
index 0000000..ef1dcfb
--- /dev/null
+++ b/repo/glib/gparamspec.patch
@@ -0,0 +1,33 @@
+From ea3f17d598d550345e94e4571130e429443e91cb Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Sun, 25 Sep 2022 14:20:24 +0100
+Subject: [PATCH] Empty values are not valid GParamSpec
+
+The validate() vfunc for GParamSpecParam returns FALSE for empty GValue,
+which means the is_valid() vfunc should do the same.
+
+This avoids a segfault when calling g_param_value_is_valid() on a
+GParamSpecParam.
+
+Fixes: #2770
+---
+ gobject/gparamspecs.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c
+index f17b3488b9..17b8606572 100644
+--- a/gobject/gparamspecs.c
++++ b/gobject/gparamspecs.c
+@@ -894,6 +894,9 @@ param_param_is_valid (GParamSpec *pspec,
+ {
+ GParamSpec *param = value->data[0].v_pointer;
+
++ if (param == NULL)
++ return FALSE;
++
+ return g_value_type_compatible (G_PARAM_SPEC_TYPE (param), G_PARAM_SPEC_VALUE_TYPE (pspec));
+ }
+
+--
+GitLab
+