From: cristy Date: Sat, 11 Apr 2015 12:43:09 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~1115 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2838929a3cf7fad358697108068f89bd3d4707c4;p=imagemagick --- diff --git a/MagickCore/blob.c b/MagickCore/blob.c index c788bf58c..379b9e04b 100644 --- a/MagickCore/blob.c +++ b/MagickCore/blob.c @@ -2812,24 +2812,6 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data) case UndefinedStream: break; case StandardStream: - { - register ssize_t - i; - - for (i=0; i < (ssize_t) length; i+=count) - { - count=read(fileno(image->blob->file_info.file),q+i,MagickMin(length-i, - (size_t) SSIZE_MAX)); - if (count <= 0) - { - count=0; - if (errno != EINTR) - break; - } - } - count=i; - break; - } case FileStream: case PipeStream: { @@ -2840,6 +2822,22 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data) count=(ssize_t) fread(q,1,length,image->blob->file_info.file); break; } + case 4: + { + c=getc(image->blob->file_info.file); + if (c == EOF) + break; + *q++=(unsigned char) c; + count++; + } + case 3: + { + c=getc(image->blob->file_info.file); + if (c == EOF) + break; + *q++=(unsigned char) c; + count++; + } case 2: { c=getc(image->blob->file_info.file); @@ -2872,6 +2870,22 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data) (unsigned int) length); break; } + case 4: + { + c=gzgetc(image->blob->file_info.gzfile); + if (c == EOF) + break; + *q++=(unsigned char) c; + count++; + } + case 3: + { + c=gzgetc(image->blob->file_info.gzfile); + if (c == EOF) + break; + *q++=(unsigned char) c; + count++; + } case 2: { c=gzgetc(image->blob->file_info.gzfile);