diff --git a/magick/blob.c b/magick/blob.c index c6268c7fd0..33c5501533 100644 --- a/magick/blob.c +++ b/magick/blob.c @@ -4311,21 +4311,19 @@ MagickExport char *ReadBlobString(Image *image,char *string) } default: { - for (i=0; i < (MagickPathExtent-2L); i++) + do { c=ReadBlobByte(image); if (c == EOF) { - if (i == 0) - return((char *) NULL); + blob_info->eof=MagickTrue; break; } - string[i]=c; + string[i++]=c; if (c == '\n') break; - } - string[++i]='\0'; - i--; + } while (i < (MaxTextExtent-2)); + string[i]='\0'; break; } } @@ -4337,6 +4335,8 @@ MagickExport char *ReadBlobString(Image *image,char *string) if (i >= 1) if ((string[i-1] == '\r') || (string[i-1] == '\n')) string[i-1]='\0'; + if ((*string == '\0') && (blob_info->eof != MagickFalse)) + return((char *) NULL); return(string); }