From: Cristy Date: Fri, 11 Aug 2017 19:10:52 +0000 (-0400) Subject: Optimization when reading ICC color profile X-Git-Tag: 7.0.6-7~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=608771837f4cb890c30e06f4ebbe37de1d5c3406;p=imagemagick Optimization when reading ICC color profile --- diff --git a/coders/ps.c b/coders/ps.c index cf1eaf46f..95834c379 100644 --- a/coders/ps.c +++ b/coders/ps.c @@ -629,13 +629,18 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Read ICC profile. */ - profile=AcquireStringInfo(65536); + profile=AcquireStringInfo(MagickPathExtent); + datum=GetStringInfoDatum(profile); for (i=0; (c=ProfileInteger(image,hex_digits)) != EOF; i++) { - SetStringInfoLength(profile,(size_t) i+1); - datum=GetStringInfoDatum(profile); + if (i >= GetStringInfoLength(profile)) + { + SetStringInfoLength(profile,(size_t) i << 1); + datum=GetStringInfoDatum(profile); + } datum[i]=(unsigned char) c; } + SetStringInfoLength(profile,(size_t) i+1); (void) SetImageProfile(image,"icc",profile,exception); profile=DestroyStringInfo(profile); continue;