[gimp] libgimp*: check all return values of g_param_spec_internal()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp*: check all return values of g_param_spec_internal()
- Date: Fri, 27 Dec 2019 18:57:23 +0000 (UTC)
commit 1856990c2bbe52af040e3059cd055804eac9d601
Author: Michael Natterer <mitch gimp org>
Date: Fri Dec 27 19:53:08 2019 +0100
libgimp*: check all return values of g_param_spec_internal()
like in the fix for issue #4392. Remove the reference to the issue
from gimp_param_spec_layer() because we can't have it in all places
that now do checks.
libgimp/gimpparamspecs-body.c | 22 +++++++++++++++++-----
libgimpbase/gimpparamspecs.c | 2 ++
2 files changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/libgimp/gimpparamspecs-body.c b/libgimp/gimpparamspecs-body.c
index bdbf47e1d4..788aa9f7c7 100644
--- a/libgimp/gimpparamspecs-body.c
+++ b/libgimp/gimpparamspecs-body.c
@@ -123,6 +123,8 @@ gimp_param_spec_image (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_IMAGE,
name, nick, blurb, flags);
+ g_return_val_if_fail (ispec, NULL);
+
ispec->none_ok = none_ok ? TRUE : FALSE;
return G_PARAM_SPEC (ispec);
@@ -228,6 +230,8 @@ gimp_param_spec_item (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_ITEM,
name, nick, blurb, flags);
+ g_return_val_if_fail (ispec, NULL);
+
ispec->none_ok = none_ok;
return G_PARAM_SPEC (ispec);
@@ -306,6 +310,8 @@ gimp_param_spec_drawable (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_DRAWABLE,
name, nick, blurb, flags);
+ g_return_val_if_fail (ispec, NULL);
+
ispec->none_ok = none_ok ? TRUE : FALSE;
return G_PARAM_SPEC (ispec);
@@ -383,11 +389,7 @@ gimp_param_spec_layer (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_LAYER,
name, nick, blurb, flags);
- /* g_param_spec_internal() may fail if for instance @name is invalid.
- * We don't want to dereference the pointer and segfault in such a
- * case, so let's just fail here.
- * See #4392.
- */
+
g_return_val_if_fail (ispec, NULL);
ispec->none_ok = none_ok ? TRUE : FALSE;
@@ -468,6 +470,8 @@ gimp_param_spec_channel (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_CHANNEL,
name, nick, blurb, flags);
+ g_return_val_if_fail (ispec, NULL);
+
ispec->none_ok = none_ok ? TRUE : FALSE;
return G_PARAM_SPEC (ispec);
@@ -546,6 +550,8 @@ gimp_param_spec_layer_mask (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_LAYER_MASK,
name, nick, blurb, flags);
+ g_return_val_if_fail (ispec, NULL);
+
ispec->none_ok = none_ok ? TRUE : FALSE;
return G_PARAM_SPEC (ispec);
@@ -624,6 +630,8 @@ gimp_param_spec_selection (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_SELECTION,
name, nick, blurb, flags);
+ g_return_val_if_fail (ispec, NULL);
+
ispec->none_ok = none_ok ? TRUE : FALSE;
return G_PARAM_SPEC (ispec);
@@ -702,6 +710,8 @@ gimp_param_spec_vectors (const gchar *name,
ispec = g_param_spec_internal (GIMP_TYPE_PARAM_VECTORS,
name, nick, blurb, flags);
+ g_return_val_if_fail (ispec, NULL);
+
ispec->none_ok = none_ok ? TRUE : FALSE;
return G_PARAM_SPEC (ispec);
@@ -807,6 +817,8 @@ gimp_param_spec_display (const gchar *name,
dspec = g_param_spec_internal (GIMP_TYPE_PARAM_DISPLAY,
name, nick, blurb, flags);
+ g_return_val_if_fail (dspec, NULL);
+
dspec->none_ok = none_ok ? TRUE : FALSE;
return G_PARAM_SPEC (dspec);
diff --git a/libgimpbase/gimpparamspecs.c b/libgimpbase/gimpparamspecs.c
index c0c4d5220c..40135d4169 100644
--- a/libgimpbase/gimpparamspecs.c
+++ b/libgimpbase/gimpparamspecs.c
@@ -1448,6 +1448,8 @@ gimp_param_spec_object_array (const gchar *name,
array_spec = g_param_spec_internal (GIMP_TYPE_PARAM_OBJECT_ARRAY,
name, nick, blurb, flags);
+ g_return_val_if_fail (array_spec, NULL);
+
array_spec->object_type = object_type;
return G_PARAM_SPEC (array_spec);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]