diff --git a/coders/vicar.c b/coders/vicar.c
index bfac89b..345c6c5 100644
--- a/coders/vicar.c
+++ b/coders/vicar.c
@@ -149,6 +149,9 @@
keyword[MaxTextExtent],
value[MaxTextExtent];
+ const void
+ *pixels;
+
Image
*image;
@@ -175,9 +178,6 @@
count,
y;
- unsigned char
- *pixels;
-
/*
Open image file.
*/
@@ -297,14 +297,16 @@
quantum_info=AcquireQuantumInfo(image_info,image);
if (quantum_info == (QuantumInfo *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
- pixels=GetQuantumPixels(quantum_info);
length=GetQuantumExtent(image,quantum_info,quantum_type);
for (y=0; y < (ssize_t) image->rows; y++)
{
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
if (q == (Quantum *) NULL)
break;
- count=ReadBlob(image,length,pixels);
+ pixels=ReadBlobStream(image,length,GetQuantumPixels(quantum_info),
+ &count);
+ if (count != (ssize_t) length)
+ break;
(void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
quantum_type,pixels,exception);
if (SyncAuthenticPixels(image,exception) == MagickFalse)