From a8b2bb29cfc3909ff5772673d568ac2add6a5083 Mon Sep 17 00:00:00 2001 From: Cristy Date: Fri, 25 Mar 2016 10:39:01 -0400 Subject: [PATCH] Check to ensure token does not exceed maximum extent --- ImageMagick-7.0.0-0/enhance.c | 14 +- MagickCore/channel.c | 20 +-- MagickCore/coder.c | 16 +- MagickCore/color.c | 16 +- MagickCore/configure.c | 18 +- MagickCore/delegate.c | 16 +- MagickCore/draw.c | 312 +++++++++++++++++----------------- MagickCore/enhance.c | 14 +- MagickCore/geometry.c | 6 +- MagickCore/locale.c | 20 +-- MagickCore/log.c | 16 +- MagickCore/magic.c | 16 +- MagickCore/module.c | 2 +- MagickCore/morphology.c | 14 +- MagickCore/option.c | 2 +- MagickCore/policy.c | 16 +- MagickCore/threshold.c | 4 +- MagickCore/token.c | 32 ++-- MagickCore/type.c | 16 +- MagickCore/vision.c | 2 +- MagickWand/convert.c | 2 +- MagickWand/drawing-wand.c | 12 +- MagickWand/mogrify.c | 56 +++--- MagickWand/operation.c | 30 ++-- coders/pdf.c | 4 +- coders/svg.c | 256 ++++++++++++++-------------- 26 files changed, 471 insertions(+), 461 deletions(-) diff --git a/ImageMagick-7.0.0-0/enhance.c b/ImageMagick-7.0.0-0/enhance.c index aca7a64e48..26a253e174 100644 --- a/ImageMagick-7.0.0-0/enhance.c +++ b/ImageMagick-7.0.0-0/enhance.c @@ -577,9 +577,9 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image, p=(const char *) content; for (i=0; (*p != '\0') && (i < 3); i++) { - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); if (*token == ',') - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); switch (i) { case 0: @@ -609,9 +609,9 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image, p=(const char *) content; for (i=0; (*p != '\0') && (i < 3); i++) { - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); if (*token == ',') - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); switch (i) { case 0: @@ -642,9 +642,9 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image, p=(const char *) content; for (i=0; (*p != '\0') && (i < 3); i++) { - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); if (*token == ',') - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); switch (i) { case 0: @@ -679,7 +679,7 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image, { content=GetXMLTreeContent(saturation); p=(const char *) content; - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); color_correction.saturation=StringToDouble(token,(char **) NULL); } } diff --git a/MagickCore/channel.c b/MagickCore/channel.c index e3fdd93bf7..e7db65a84c 100644 --- a/MagickCore/channel.c +++ b/MagickCore/channel.c @@ -243,7 +243,7 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression, channel_mask=UndefinedChannel; pixel=0.0; p=(char *) expression; - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); channel_op=ExtractChannelOp; for (channels=0; *token != '\0'; ) { @@ -257,7 +257,7 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression, { case ',': { - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); break; } case '|': @@ -266,7 +266,7 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression, source_image=GetNextImageInList(source_image); else source_image=GetFirstImageInList(source_image); - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); break; } case ';': @@ -291,7 +291,7 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression, } AppendImageToList(&destination_image,canvas); destination_image=GetLastImageInList(destination_image); - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); channels=0; destination_channel=RedPixelChannel; channel_mask=UndefinedChannel; @@ -310,30 +310,30 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression, } source_channel=(PixelChannel) i; channel_op=ExtractChannelOp; - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); if (*token == '<') { channel_op=ExchangeChannelOp; - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); } if (*token == '=') { if (channel_op != ExchangeChannelOp) channel_op=AssignChannelOp; - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); } if (*token == '>') { if (channel_op != ExchangeChannelOp) channel_op=TransferChannelOp; - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); } switch (channel_op) { case AssignChannelOp: { pixel=StringToDoubleInterval(token,(double) QuantumRange+1.0); - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); break; } case ExchangeChannelOp: @@ -383,7 +383,7 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression, if (((channels >= 1) || (destination_channel >= 1)) && (IsGrayColorspace(destination_image->colorspace) != MagickFalse)) (void) SetImageColorspace(destination_image,sRGBColorspace,exception); - GetMagickToken(p,&p,token); + GetMagickToken(p,&p,MagickPathExtent,token); break; } default: diff --git a/MagickCore/coder.c b/MagickCore/coder.c index 1231ba0735..88f2bbf655 100644 --- a/MagickCore/coder.c +++ b/MagickCore/coder.c @@ -834,7 +834,7 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache, /* Interpret XML. */ - GetMagickToken(q,&q,token); + GetMagickToken(q,&q,MagickPathExtent,token); if (*token == '\0') break; (void) CopyMagickString(keyword,token,MagickPathExtent); @@ -844,7 +844,7 @@ static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache, Doctype element. */ while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0')) - GetMagickToken(q,&q,token); + GetMagickToken(q,&q,MagickPathExtent,token); continue; } if (LocaleNCompare(keyword,"