Check to ensure token does not exceed maximum extent
diff --git a/MagickCore/channel.c b/MagickCore/channel.c
index e3fdd93..e7db65a 100644
--- a/MagickCore/channel.c
+++ b/MagickCore/channel.c
@@ -243,7 +243,7 @@
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 @@
{
case ',':
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
break;
}
case '|':
@@ -266,7 +266,7 @@
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 @@
}
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 @@
}
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 @@
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 1231ba0..88f2bbf 100644
--- a/MagickCore/coder.c
+++ b/MagickCore/coder.c
@@ -834,7 +834,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -844,7 +844,7 @@
Doctype element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -853,7 +853,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -864,10 +864,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -926,11 +926,11 @@
coder_info=(CoderInfo *) NULL;
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'M':
diff --git a/MagickCore/color.c b/MagickCore/color.c
index cbffb1b..b93b1cf 100644
--- a/MagickCore/color.c
+++ b/MagickCore/color.c
@@ -2008,7 +2008,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -2018,7 +2018,7 @@
Doctype element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -2027,7 +2027,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -2038,10 +2038,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -2099,11 +2099,11 @@
color_info=(ColorInfo *) NULL;
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'C':
diff --git a/MagickCore/configure.c b/MagickCore/configure.c
index 768bc39..0962035 100644
--- a/MagickCore/configure.c
+++ b/MagickCore/configure.c
@@ -895,7 +895,7 @@
/*
Search $XDG_CONFIG_HOME/ImageMagick.
*/
- (void) FormatLocaleString(path,MaxTextExtent,"%s%sImageMagick%s",
+ (void) FormatLocaleString(path,MagickPathExtent,"%s%sImageMagick%s",
home,DirectorySeparator,DirectorySeparator);
(void) AppendValueToLinkedList(paths,ConstantString(path));
home=DestroyString(home);
@@ -1165,7 +1165,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1175,7 +1175,7 @@
Doctype element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1184,7 +1184,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -1195,10 +1195,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -1260,11 +1260,11 @@
/*
Parse configure element.
*/
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'N':
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index 0c13c9b..c8a4334 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -1519,7 +1519,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1529,7 +1529,7 @@
Doctype element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1538,7 +1538,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -1549,10 +1549,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -1611,11 +1611,11 @@
delegate_info=(DelegateInfo *) NULL;
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'C':
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index 1c05b1e..a305091 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -1792,7 +1792,7 @@
/*
Interpret graphic primitive.
*/
- GetMagickToken(q,&q,keyword);
+ GetMagickToken(q,&q,MagickPathExtent,keyword);
if (*keyword == '\0')
break;
if (*keyword == '#')
@@ -1817,27 +1817,27 @@
{
if (LocaleCompare("affine",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.sx=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.rx=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.ry=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.sy=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.tx=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.ty=StringToDouble(token,(char **) NULL);
break;
}
@@ -1864,7 +1864,7 @@
}
if (LocaleCompare("border-color",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) QueryColorCompliance(token,AllCompliance,
&graphic_context[n]->border_color,exception);
break;
@@ -1880,7 +1880,7 @@
/*
Create clip mask.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CloneString(&graphic_context[n]->clip_mask,token);
(void) DrawClipPath(image,graphic_context[n],
graphic_context[n]->clip_mask,exception);
@@ -1891,7 +1891,7 @@
ssize_t
fill_rule;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
fill_rule=ParseCommandOption(MagickFillRuleOptions,MagickFalse,
token);
if (fill_rule == -1)
@@ -1905,7 +1905,7 @@
ssize_t
clip_units;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
clip_units=ParseCommandOption(MagickClipPathOptions,MagickFalse,
token);
if (clip_units == -1)
@@ -1946,7 +1946,7 @@
ssize_t
decorate;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
decorate=ParseCommandOption(MagickDecorateOptions,MagickFalse,
token);
if (decorate == -1)
@@ -1957,7 +1957,7 @@
}
if (LocaleCompare("density",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CloneString(&graphic_context[n]->density,token);
break;
}
@@ -1966,7 +1966,7 @@
ssize_t
direction;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
direction=ParseCommandOption(MagickDirectionOptions,MagickFalse,
token);
if (direction == -1)
@@ -1988,7 +1988,7 @@
}
if (LocaleCompare("encoding",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CloneString(&graphic_context[n]->encoding,token);
break;
}
@@ -2000,7 +2000,7 @@
{
if (LocaleCompare("fill",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) FormatLocaleString(pattern,MagickPathExtent,"%s",token);
if (GetImageArtifact(image,pattern) != (const char *) NULL)
(void) DrawPatternPath(image,draw_info,token,
@@ -2027,7 +2027,7 @@
}
if (LocaleCompare("fill-opacity",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
graphic_context[n]->fill.alpha=(double) QuantumRange*
factor*StringToDouble(token,(char **) NULL);
@@ -2038,7 +2038,7 @@
ssize_t
fill_rule;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
fill_rule=ParseCommandOption(MagickFillRuleOptions,MagickFalse,
token);
if (fill_rule == -1)
@@ -2049,7 +2049,7 @@
}
if (LocaleCompare("font",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CloneString(&graphic_context[n]->font,token);
if (LocaleCompare("none",token) == 0)
graphic_context[n]->font=(char *)
@@ -2058,13 +2058,13 @@
}
if (LocaleCompare("font-family",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CloneString(&graphic_context[n]->family,token);
break;
}
if (LocaleCompare("font-size",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->pointsize=StringToDouble(token,(char **) NULL);
break;
}
@@ -2073,7 +2073,7 @@
ssize_t
stretch;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
stretch=ParseCommandOption(MagickStretchOptions,MagickFalse,token);
if (stretch == -1)
status=MagickFalse;
@@ -2086,7 +2086,7 @@
ssize_t
style;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
style=ParseCommandOption(MagickStyleOptions,MagickFalse,token);
if (style == -1)
status=MagickFalse;
@@ -2099,7 +2099,7 @@
ssize_t
weight;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
weight=ParseCommandOption(MagickWeightOptions,MagickFalse,
token);
if (weight == -1)
@@ -2115,7 +2115,7 @@
{
if (LocaleCompare("gradient-units",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
break;
}
if (LocaleCompare("gravity",keyword) == 0)
@@ -2123,7 +2123,7 @@
ssize_t
gravity;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
gravity=ParseCommandOption(MagickGravityOptions,MagickFalse,token);
if (gravity == -1)
status=MagickFalse;
@@ -2143,7 +2143,7 @@
compose;
primitive_type=ImagePrimitive;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
compose=ParseCommandOption(MagickComposeOptions,MagickFalse,token);
if (compose == -1)
status=MagickFalse;
@@ -2153,14 +2153,14 @@
}
if (LocaleCompare("interline-spacing",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->interline_spacing=StringToDouble(token,
(char **) NULL);
break;
}
if (LocaleCompare("interword-spacing",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->interword_spacing=StringToDouble(token,
(char **) NULL);
break;
@@ -2173,7 +2173,7 @@
{
if (LocaleCompare("kerning",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->kerning=StringToDouble(token,(char **) NULL);
break;
}
@@ -2194,12 +2194,12 @@
{
if (LocaleCompare("offset",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
break;
}
if (LocaleCompare("opacity",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
graphic_context[n]->alpha=ClampToQuantum(QuantumRange*(1.0-((1.0-
QuantumScale*graphic_context[n]->alpha)*factor*
@@ -2236,7 +2236,7 @@
}
if (LocaleCompare("pop",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare("clip-path",token) == 0)
break;
if (LocaleCompare("defs",token) == 0)
@@ -2268,27 +2268,27 @@
}
if (LocaleCompare("push",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare("clip-path",token) == 0)
{
char
name[MagickPathExtent];
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) FormatLocaleString(name,MagickPathExtent,"%s",token);
for (p=q; *q != '\0'; )
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(token,"pop") != 0)
continue;
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (LocaleCompare(token,"clip-path") != 0)
continue;
break;
}
(void) CopyMagickString(token,p,(size_t) (q-p-4+1));
(void) SetImageArtifact(image,name,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
break;
}
if (LocaleCompare("gradient",token) == 0)
@@ -2301,36 +2301,36 @@
SegmentInfo
segment;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CopyMagickString(name,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CopyMagickString(type,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
segment.x1=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
segment.y1=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
segment.x2=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
segment.y2=StringToDouble(token,(char **) NULL);
if (LocaleCompare(type,"radial") == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
}
for (p=q; *q != '\0'; )
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(token,"pop") != 0)
continue;
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (LocaleCompare(token,"gradient") != 0)
continue;
break;
@@ -2359,7 +2359,7 @@
MagickMax(fabs(bounds.y2-bounds.y1+1.0),1.0),
bounds.x1,bounds.y1);
(void) SetImageArtifact(image,key,geometry);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
break;
}
if (LocaleCompare("pattern",token) == 0)
@@ -2371,32 +2371,32 @@
RectangleInfo
pattern_bounds;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) CopyMagickString(name,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
pattern_bounds.x=(ssize_t) ceil(StringToDouble(token,
(char **) NULL)-0.5);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
pattern_bounds.y=(ssize_t) ceil(StringToDouble(token,
(char **) NULL)-0.5);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
pattern_bounds.width=(size_t) floor(StringToDouble(token,
(char **) NULL)+0.5);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
pattern_bounds.height=(size_t) floor(StringToDouble(token,
(char **) NULL)+0.5);
for (p=q; *q != '\0'; )
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(token,"pop") != 0)
continue;
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (LocaleCompare(token,"pattern") != 0)
continue;
break;
@@ -2411,7 +2411,7 @@
(double)pattern_bounds.height,(double)pattern_bounds.x,
(double)pattern_bounds.y);
(void) SetImageArtifact(image,key,geometry);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
break;
}
if (LocaleCompare("graphic-context",token) == 0)
@@ -2448,7 +2448,7 @@
}
if (LocaleCompare("rotate",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
angle=StringToDouble(token,(char **) NULL);
affine.sx=cos(DegreesToRadians(fmod((double) angle,360.0)));
affine.rx=sin(DegreesToRadians(fmod((double) angle,360.0)));
@@ -2469,24 +2469,24 @@
{
if (LocaleCompare("scale",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.sx=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.sy=StringToDouble(token,(char **) NULL);
break;
}
if (LocaleCompare("skewX",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
angle=StringToDouble(token,(char **) NULL);
affine.ry=sin(DegreesToRadians(angle));
break;
}
if (LocaleCompare("skewY",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
angle=StringToDouble(token,(char **) NULL);
affine.rx=(-tan(DegreesToRadians(angle)/2.0));
break;
@@ -2509,17 +2509,17 @@
image->filename);
break;
}
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) QueryColorCompliance(token,AllCompliance,&stop_color,
exception);
stops[number_stops-1].color=stop_color;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
stops[number_stops-1].offset=StringToDouble(token,(char **) NULL);
break;
}
if (LocaleCompare("stroke",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) FormatLocaleString(pattern,MagickPathExtent,"%s",token);
if (GetImageArtifact(image,pattern) != (const char *) NULL)
(void) DrawPatternPath(image,draw_info,token,
@@ -2546,7 +2546,7 @@
}
if (LocaleCompare("stroke-antialias",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->stroke_antialias=
StringToLong(token) != 0 ? MagickTrue : MagickFalse;
break;
@@ -2562,14 +2562,14 @@
*r;
r=q;
- GetMagickToken(r,&r,token);
+ GetMagickToken(r,&r,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(r,&r,token);
+ GetMagickToken(r,&r,MagickPathExtent,token);
for (x=0; IsPoint(token) != MagickFalse; x++)
{
- GetMagickToken(r,&r,token);
+ GetMagickToken(r,&r,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(r,&r,token);
+ GetMagickToken(r,&r,MagickPathExtent,token);
}
graphic_context[n]->dash_pattern=(double *)
AcquireQuantumMemory((size_t) (2UL*x+1UL),
@@ -2583,9 +2583,9 @@
}
for (j=0; j < x; j++)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->dash_pattern[j]=StringToDouble(token,
(char **) NULL);
}
@@ -2596,12 +2596,12 @@
graphic_context[n]->dash_pattern[j]=0.0;
break;
}
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
break;
}
if (LocaleCompare("stroke-dashoffset",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->dash_offset=StringToDouble(token,
(char **) NULL);
break;
@@ -2611,7 +2611,7 @@
ssize_t
linecap;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
linecap=ParseCommandOption(MagickLineCapOptions,MagickFalse,token);
if (linecap == -1)
status=MagickFalse;
@@ -2624,7 +2624,7 @@
ssize_t
linejoin;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
linejoin=ParseCommandOption(MagickLineJoinOptions,MagickFalse,
token);
if (linejoin == -1)
@@ -2635,13 +2635,13 @@
}
if (LocaleCompare("stroke-miterlimit",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->miterlimit=StringToUnsignedLong(token);
break;
}
if (LocaleCompare("stroke-opacity",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
graphic_context[n]->stroke.alpha=(double) QuantumRange*
factor*StringToDouble(token,(char **) NULL);
@@ -2649,7 +2649,7 @@
}
if (LocaleCompare("stroke-width",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->stroke_width=StringToDouble(token,
(char **) NULL);
break;
@@ -2670,7 +2670,7 @@
ssize_t
align;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
align=ParseCommandOption(MagickAlignOptions,MagickFalse,token);
if (align == -1)
status=MagickFalse;
@@ -2683,7 +2683,7 @@
ssize_t
align;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
align=ParseCommandOption(MagickAlignOptions,MagickFalse,token);
if (align == -1)
status=MagickFalse;
@@ -2693,25 +2693,25 @@
}
if (LocaleCompare("text-antialias",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->text_antialias=
StringToLong(token) != 0 ? MagickTrue : MagickFalse;
break;
}
if (LocaleCompare("text-undercolor",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
(void) QueryColorCompliance(token,AllCompliance,
&graphic_context[n]->undercolor,exception);
break;
}
if (LocaleCompare("translate",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.tx=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
affine.ty=StringToDouble(token,(char **) NULL);
break;
}
@@ -2723,22 +2723,22 @@
{
if (LocaleCompare("viewbox",keyword) == 0)
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->viewbox.x=(ssize_t) ceil(StringToDouble(token,
(char **) NULL)-0.5);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->viewbox.y=(ssize_t) ceil(StringToDouble(token,
(char **) NULL)-0.5);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->viewbox.width=(size_t) floor(StringToDouble(
token,(char **) NULL)+0.5);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
graphic_context[n]->viewbox.height=(size_t) floor(StringToDouble(
token,(char **) NULL)+0.5);
break;
@@ -2803,15 +2803,15 @@
*/
if (IsPoint(q) == MagickFalse)
break;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
point.x=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
point.y=StringToDouble(token,(char **) NULL);
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
primitive_info[i].primitive=primitive_type;
primitive_info[i].point=point;
primitive_info[i].coordinates=0;
@@ -2891,7 +2891,7 @@
*s,
*t;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
length=1;
t=token;
for (s=token; *s != '\0'; s=t)
@@ -3068,7 +3068,7 @@
status=MagickFalse;
break;
}
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
method=ParseCommandOption(MagickMethodOptions,MagickFalse,token);
if (method == -1)
status=MagickFalse;
@@ -3084,7 +3084,7 @@
break;
}
if (*token != ',')
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
primitive_info[j].text=AcquireString(token);
break;
}
@@ -3095,7 +3095,7 @@
status=MagickFalse;
break;
}
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
primitive_info[j].text=AcquireString(token);
break;
}
@@ -5387,33 +5387,33 @@
*/
do
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
arc.x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
arc.y=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
angle=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
large_arc=StringToLong(token) != 0 ? MagickTrue : MagickFalse;
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
sweep=StringToLong(token) != 0 ? MagickTrue : MagickFalse;
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
end.x=(double) (attribute == (int) 'A' ? x : point.x+x);
end.y=(double) (attribute == (int) 'A' ? y : point.y+y);
@@ -5438,13 +5438,13 @@
points[0]=point;
for (i=1; i < 4; i++)
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
end.x=(double) (attribute == (int) 'C' ? x : point.x+x);
end.y=(double) (attribute == (int) 'C' ? y : point.y+y);
@@ -5463,9 +5463,9 @@
{
do
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
point.x=(double) (attribute == (int) 'H' ? x: point.x+x);
TracePoint(q,point);
@@ -5478,13 +5478,13 @@
{
do
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
point.x=(double) (attribute == (int) 'L' ? x : point.x+x);
point.y=(double) (attribute == (int) 'L' ? y : point.y+y);
@@ -5505,13 +5505,13 @@
i=0;
do
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
point.x=(double) (attribute == (int) 'M' ? x : point.x+x);
point.y=(double) (attribute == (int) 'M' ? y : point.y+y);
@@ -5539,13 +5539,13 @@
points[0]=point;
for (i=1; i < 3; i++)
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
if (*p == ',')
p++;
@@ -5574,13 +5574,13 @@
points[1].y=2.0*points[3].y-points[2].y;
for (i=2; i < 4; i++)
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
if (*p == ',')
p++;
@@ -5614,13 +5614,13 @@
points[1].y=2.0*points[2].y-points[1].y;
for (i=2; i < 3; i++)
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
x=StringToDouble(token,(char **) NULL);
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
end.x=(double) (attribute == (int) 'T' ? x : point.x+x);
end.y=(double) (attribute == (int) 'T' ? y : point.y+y);
@@ -5644,9 +5644,9 @@
{
do
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
y=StringToDouble(token,(char **) NULL);
point.y=(double) (attribute == (int) 'V' ? y : point.y+y);
TracePoint(q,point);
diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c
index 3797cac..b80882c 100644
--- a/MagickCore/enhance.c
+++ b/MagickCore/enhance.c
@@ -577,9 +577,9 @@
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 @@
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 @@
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 @@
{
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/geometry.c b/MagickCore/geometry.c
index 0c7e278..d60fc00 100644
--- a/MagickCore/geometry.c
+++ b/MagickCore/geometry.c
@@ -729,9 +729,9 @@
p=(char *) geometry;
for (i=0; (*p != '\0') && (i < 6); 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:
@@ -864,7 +864,7 @@
c=(int) ((unsigned char) *p);
if (isspace(c) != 0)
{
- (void) CopyMagickString(p,p+1,MaxTextExtent);
+ (void) CopyMagickString(p,p+1,MagickPathExtent);
continue;
}
switch (c)
diff --git a/MagickCore/locale.c b/MagickCore/locale.c
index 7340fc3..91f900c 100644
--- a/MagickCore/locale.c
+++ b/MagickCore/locale.c
@@ -1193,7 +1193,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickLocaleExtent);
@@ -1204,7 +1204,7 @@
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
while (isspace((int) ((unsigned char) *q)) != 0)
q++;
}
@@ -1217,7 +1217,7 @@
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
{
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
while (isspace((int) ((unsigned char) *q)) != 0)
q++;
}
@@ -1231,10 +1231,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickLocaleExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"locale") == 0)
{
if (LocaleCompare(locale,token) != 0)
@@ -1281,10 +1281,10 @@
while ((*token != '>') && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickLocaleExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
}
continue;
}
@@ -1306,10 +1306,10 @@
while ((*token != '>') && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickLocaleExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"name") == 0)
{
(void) ConcatenateMagickString(tag,token,MagickLocaleExtent);
@@ -1368,7 +1368,7 @@
(void) ConcatenateMagickString(tag,"/",MagickLocaleExtent);
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
}
diff --git a/MagickCore/log.c b/MagickCore/log.c
index b22c011..eb1deff 100644
--- a/MagickCore/log.c
+++ b/MagickCore/log.c
@@ -1448,7 +1448,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1458,7 +1458,7 @@
Doctype element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1467,7 +1467,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -1478,10 +1478,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -1538,11 +1538,11 @@
log_info=(LogInfo *) NULL;
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'E':
diff --git a/MagickCore/magic.c b/MagickCore/magic.c
index 34715cf..c3f38db 100644
--- a/MagickCore/magic.c
+++ b/MagickCore/magic.c
@@ -855,7 +855,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -865,7 +865,7 @@
Doctype element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -874,7 +874,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -885,10 +885,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -947,11 +947,11 @@
magic_info=(MagicInfo *) NULL;
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'N':
diff --git a/MagickCore/module.c b/MagickCore/module.c
index 9ea97ba..e27d542 100644
--- a/MagickCore/module.c
+++ b/MagickCore/module.c
@@ -792,7 +792,7 @@
/*
Search $XDG_CONFIG_HOME/ImageMagick.
*/
- (void) FormatLocaleString(path,MaxTextExtent,"%s%sImageMagick%s%s",
+ (void) FormatLocaleString(path,MagickPathExtent,"%s%sImageMagick%s%s",
home,DirectorySeparator,DirectorySeparator,filename);
home=DestroyString(home);
if (IsPathAccessible(path) != MagickFalse)
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index 649c1bc..65a2d9a 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -298,9 +298,9 @@
p++; /* ignore "'" chars for convolve filter usage - Cristy */
for (i=0; p < end; i++)
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
}
/* set the size of the kernel - old sized square */
kernel->width = kernel->height= (size_t) sqrt((double) i+1.0);
@@ -320,9 +320,9 @@
kernel->negative_range = kernel->positive_range = 0.0;
for (i=0; (i < (ssize_t) (kernel->width*kernel->height)) && (p < end); i++)
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if ( LocaleCompare("nan",token) == 0
|| LocaleCompare("-",token) == 0 ) {
kernel->values[i] = nan; /* this value is not part of neighbourhood */
@@ -338,7 +338,7 @@
}
/* sanity check -- no more values in kernel definition */
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if ( *token != '\0' && *token != ';' && *token != '\'' )
return(DestroyKernelInfo(kernel));
@@ -393,7 +393,7 @@
type;
/* Parse special 'named' kernel */
- GetMagickToken(kernel_string,&p,token);
+ GetMagickToken(kernel_string,&p,MagickPathExtent,token);
type=ParseCommandOption(MagickKernelOptions,MagickFalse,token);
if ( type < 0 || type == UserDefinedKernel )
return((KernelInfo *) NULL); /* not a valid named kernel */
@@ -509,7 +509,7 @@
p=(const char *) kernel_cache;
}
kernel=NULL;
- while (GetMagickToken(p,NULL,token), *token != '\0')
+ while (GetMagickToken(p,(const char **) NULL,MagickPathExtent,token), *token != '\0')
{
/* ignore extra or multiple ';' kernel separators */
if (*token != ';')
diff --git a/MagickCore/option.c b/MagickCore/option.c
index 48fb2fc..aba08a1 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -2758,7 +2758,7 @@
ssize_t
channel;
- GetMagickToken(channels,NULL,token);
+ GetMagickToken(channels,(const char **) NULL,MagickPathExtent,token);
if ((*token == ';') || (*token == '|'))
return(RedPixelChannel);
channel=ParseCommandOption(MagickPixelChannelOptions,MagickTrue,token);
diff --git a/MagickCore/policy.c b/MagickCore/policy.c
index 67702a9..da1ff58 100644
--- a/MagickCore/policy.c
+++ b/MagickCore/policy.c
@@ -763,7 +763,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -773,7 +773,7 @@
Docdomain element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -782,7 +782,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -793,10 +793,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -854,11 +854,11 @@
policy_info=(PolicyInfo *) NULL;
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'D':
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 4168e57..76f9382 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -1346,9 +1346,9 @@
if ((p != (char *) NULL) && (isdigit((int) ((unsigned char) *(++p))) != 0))
for (i=0; (*p != '\0') && (i < MaxPixelChannels); i++)
{
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
if (*token == ',')
- GetMagickToken(p,&p,token);
+ GetMagickToken(p,&p,MagickPathExtent,token);
levels[i]=StringToDouble(token,(char **) NULL);
}
for (i=0; i < MaxPixelChannels; i++)
diff --git a/MagickCore/token.c b/MagickCore/token.c
index 1d8022d..e36d216 100644
--- a/MagickCore/token.c
+++ b/MagickCore/token.c
@@ -163,10 +163,13 @@
%
% o end: point to the end of the token sequence.
%
+% o extent: maximum extent of the token.
+%
% o token: copy the token to this buffer.
%
*/
-MagickExport void GetMagickToken(const char *start,const char **end,char *token)
+MagickExport void GetMagickToken(const char *start,const char **end,
+ const size_t extent,char *token)
{
double
value;
@@ -213,15 +216,18 @@
p++;
break;
}
- token[i++]=(*p);
+ if (i < (extent-1))
+ token[i++]=(*p);
}
break;
}
case '/':
{
- token[i++]=(*p++);
- if ((*p == '>') || (*p == '/'))
+ if (i < (extent-1))
token[i++]=(*p++);
+ if ((*p == '>') || (*p == '/'))
+ if (i < (extent-1))
+ token[i++]=(*p++);
break;
}
default:
@@ -234,32 +240,36 @@
if ((p != q) && (*p != ','))
{
for ( ; (p < q) && (*p != ','); p++)
- token[i++]=(*p);
+ if (i < (extent-1))
+ token[i++]=(*p);
if (*p == '%')
- token[i++]=(*p++);
+ if (i < (extent-1))
+ token[i++]=(*p++);
break;
}
if ((*p != '\0') && (isalpha((int) ((unsigned char) *p)) == 0) &&
(*p != *DirectorySeparator) && (*p != '#') && (*p != '<'))
{
- token[i++]=(*p++);
+ if (i < (extent-1))
+ token[i++]=(*p++);
break;
}
for ( ; *p != '\0'; p++)
{
if (((isspace((int) ((unsigned char) *p)) != 0) || (*p == '=') ||
- (*p == ':') || (*p == ',') || (*p == '|') || (*p == ';')) &&
- (*(p-1) != '\\'))
+ (*p == ',') || (*p == ':') || (*p == ';')) && (*(p-1) != '\\'))
break;
if ((i > 0) && (*p == '<'))
break;
- token[i++]=(*p);
+ if (i < (extent-1))
+ token[i++]=(*p);
if (*p == '>')
break;
if (*p == '(')
for (p++; *p != '\0'; p++)
{
- token[i++]=(*p);
+ if (i < (extent-1))
+ token[i++]=(*p);
if ((*p == ')') && (*(p-1) != '\\'))
break;
}
diff --git a/MagickCore/type.c b/MagickCore/type.c
index f851b98..1ac7094 100644
--- a/MagickCore/type.c
+++ b/MagickCore/type.c
@@ -1108,7 +1108,7 @@
/*
Interpret XML.
*/
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token == '\0')
break;
(void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1118,7 +1118,7 @@
Doctype element.
*/
while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1127,7 +1127,7 @@
Comment element.
*/
while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
continue;
}
if (LocaleCompare(keyword,"<include") == 0)
@@ -1138,10 +1138,10 @@
while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
{
(void) CopyMagickString(keyword,token,MagickPathExtent);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
if (LocaleCompare(keyword,"file") == 0)
{
if (depth > 200)
@@ -1203,11 +1203,11 @@
type_info=(TypeInfo *) NULL;
continue;
}
- GetMagickToken(q,(const char **) NULL,token);
+ GetMagickToken(q,(const char **) NULL,MagickPathExtent,token);
if (*token != '=')
continue;
- GetMagickToken(q,&q,token);
- GetMagickToken(q,&q,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
+ GetMagickToken(q,&q,MagickPathExtent,token);
switch (*keyword)
{
case 'E':
diff --git a/MagickCore/vision.c b/MagickCore/vision.c
index e93c2c7..18f4d43 100644
--- a/MagickCore/vision.c
+++ b/MagickCore/vision.c
@@ -682,7 +682,7 @@
for (i=0; i < (ssize_t) component_image->colors; i++)
{
char
- mean_color[MaxTextExtent];
+ mean_color[MagickPathExtent];
if (status == MagickFalse)
break;