From 608771837f4cb890c30e06f4ebbe37de1d5c3406 Mon Sep 17 00:00:00 2001 From: Cristy Date: Fri, 11 Aug 2017 15:10:52 -0400 Subject: [PATCH] Optimization when reading ICC color profile --- coders/ps.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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; -- 2.50.1