[gimp/gimp-2-8] Bug 739457 - Some errors not detected for GIMP_PDB_COLOR arguments
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-8] Bug 739457 - Some errors not detected for GIMP_PDB_COLOR arguments
- Date: Sun, 30 Nov 2014 17:34:20 +0000 (UTC)
commit dad54b67c1267db6b294004a5c2900a505558785
Author: Saul Goode <saul crazyauntgail com>
Date: Fri Oct 31 12:13:07 2014 -0400
Bug 739457 - Some errors not detected for GIMP_PDB_COLOR arguments
Check that all 3 array elements are numbers-
(cherry picked from commit d03b33f1d90991623fd1848c7a2d2a61900d4396)
plug-ins/script-fu/scheme-wrapper.c | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 deletions(-)
---
diff --git a/plug-ins/script-fu/scheme-wrapper.c b/plug-ins/script-fu/scheme-wrapper.c
index d8d67f0..08704a7 100644
--- a/plug-ins/script-fu/scheme-wrapper.c
+++ b/plug-ins/script-fu/scheme-wrapper.c
@@ -1100,18 +1100,36 @@ script_fu_marshal_procedure_call (scheme *sc,
sc->vptr->list_length (sc, sc->vptr->pair_car (a)) == 3)
{
pointer color_list;
- guchar r, g, b;
+ guchar r = 0, g = 0, b = 0;
color_list = sc->vptr->pair_car (a);
- r = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), 0, 255);
+ if (sc->vptr->is_number (sc->vptr->pair_car (color_list)))
+ r = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)),
+ 0, 255);
+ else
+ success = FALSE;
+
color_list = sc->vptr->pair_cdr (color_list);
- g = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), 0, 255);
+ if (sc->vptr->is_number (sc->vptr->pair_car (color_list)))
+ g = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)),
+ 0, 255);
+ else
+ success = FALSE;
+
color_list = sc->vptr->pair_cdr (color_list);
- b = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), 0, 255);
+ if (sc->vptr->is_number (sc->vptr->pair_car (color_list)))
+ b = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)),
+ 0, 255);
+ else
+ success = FALSE;
- gimp_rgba_set_uchar (&args[i].data.d_color, r, g, b, 255);
+ if (success)
+ gimp_rgba_set_uchar (&args[i].data.d_color, r, g, b, 255);
#if DEBUG_MARSHALL
- g_printerr (" (%d %d %d)\n", r, g, b);
+ if (success)
+ g_printerr (" (%d %d %d)\n", r, g, b);
+ else
+ g_printerr (" COLOR list contains non-numbers\n");
#endif
}
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]