From c99875aa940e5ec9e5c3be1a46d72aa5e5ad219c Mon Sep 17 00:00:00 2001 From: anthony Date: Wed, 14 Nov 2012 05:22:17 +0000 Subject: [PATCH] Bug fix on segv in not CLI apis (image->image_info pointer) --- MagickCore/image.c | 8 +++++++- MagickCore/property.c | 17 ++++++++++++++++- Makefile.in | 6 +++--- tests/Makefile.am | 4 ++-- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/MagickCore/image.c b/MagickCore/image.c index cea00680f..aa7eda79f 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -3962,7 +3962,13 @@ MagickExport MagickBooleanType SyncImageSettings(const ImageInfo *image_info, WARNING: when a global option is set or unset, any equivelent per-image artefact should also be unset. */ - image->image_info = image_info; + /* Programming Note... + Don't do anything at this point, as image_info is only being used + to create the image, the image may not be added to this image_info, + or in some API's to any specific image_info structure. + */ + /* image->image_info = image_info; */ + image->image_info = (MagickInfo *) NULL; #endif return(MagickTrue); } diff --git a/MagickCore/property.c b/MagickCore/property.c index be64e0240..05ca1c529 100644 --- a/MagickCore/property.c +++ b/MagickCore/property.c @@ -3454,6 +3454,8 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, switch (*property) { +#if 0 /* the percent escape sets prefix:... propertys! + This causes it to fail */ case '8': { if (LocaleNCompare("8bim:",property,5) == 0) @@ -3464,6 +3466,7 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, } break; } +#endif case 'B': case 'b': { @@ -3611,6 +3614,8 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, } break; /* add to properties splay tree */ } +#if 0 /* the percent escape sets prefix:... propertys! + This causes it to fail */ case 'E': case 'e': { @@ -3633,6 +3638,7 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, } break; /* add to properties splay tree */ } +#endif case 'G': case 'g': { @@ -3692,12 +3698,15 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, image->interpolate=(PixelInterpolateMethod) interpolate; return(MagickTrue); } +#if 0 /* the percent escape sets prefix:... propertys! + This causes it to fail */ if (LocaleNCompare("iptc:",property,5) == 0) { (void) ThrowMagickException(exception,GetMagickModule(), OptionError,"SetReadOnlyProperty","'%s'",property); return(MagickFalse); } +#endif break; /* add to properties splay tree */ } case 'K': @@ -3754,12 +3763,15 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, geometry=DestroyString(geometry); return(MagickTrue); } +#if 0 /* the percent escape sets prefix:... propertys! + This causes it to fail */ if (LocaleNCompare("pixel:",property,6) == 0) { (void) ThrowMagickException(exception,GetMagickModule(), OptionError,"SetReadOnlyProperty","'%s'",property); return(MagickFalse); } +#endif if (LocaleCompare("profile",property) == 0) { ImageInfo @@ -3861,6 +3873,8 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, } break; /* add to properties splay tree */ } +#if 0 /* the percent escape sets prefix:... propertys! + This causes it to fail */ case 'X': case 'x': { @@ -3872,8 +3886,9 @@ MagickExport MagickBooleanType SetImageProperty(Image *image, } break; /* add to properties splay tree */ } +#endif } - /* add to properties splay tree */ + /* Default: add to properties splay tree */ status=AddValueToSplayTree((SplayTreeInfo *) image->properties, ConstantString(property),ConstantString(value)); /* FUTURE: error if status is bad? */ diff --git a/Makefile.in b/Makefile.in index 550880a1c..95e433205 100644 --- a/Makefile.in +++ b/Makefile.in @@ -4800,13 +4800,13 @@ TESTS_TESTS = \ tests/validate-identify.tap \ tests/validate-import.tap \ tests/validate-montage.tap \ - tests/validate-pipe.tap \ - tests/validate-colorspace.tap \ tests/validate-stream.tap \ tests/validate-formats-in-memory.tap \ tests/validate-formats-on-disk.tap \ tests/drawtest.tap \ - tests/wandtest.tap + tests/wandtest.tap \ + tests/cli-colorspace.tap \ + tests/cli-pipe.tap TESTS_EXTRA_DIST = \ tests/common.shi \ diff --git a/tests/Makefile.am b/tests/Makefile.am index 2e25c61bf..7196f6ae5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -40,13 +40,13 @@ TESTS_TESTS = \ tests/validate-identify.tap \ tests/validate-import.tap \ tests/validate-montage.tap \ - tests/validate-pipe.tap \ - tests/validate-colorspace.tap \ tests/validate-stream.tap \ tests/validate-formats-in-memory.tap \ tests/validate-formats-on-disk.tap \ tests/drawtest.tap \ tests/wandtest.tap + tests/cli-colorspace.tap \ + tests/cli-pipe.tap \ TESTS_EXTRA_DIST = \ tests/common.shi \ -- 2.40.0