From: Dirk Lemstra Date: Thu, 18 Jul 2019 19:45:21 +0000 (+0200) Subject: Moved the bytes in GetMagickByteBufferDatum to the start of the buffer instead. X-Git-Tag: 7.0.8-55~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7a34a4b2ba03f8c9ceac1896d1505721952470b2;p=imagemagick Moved the bytes in GetMagickByteBufferDatum to the start of the buffer instead. --- diff --git a/coders/bytebuffer-private.h b/coders/bytebuffer-private.h index d3a01465c..94eb6ab7e 100644 --- a/coders/bytebuffer-private.h +++ b/coders/bytebuffer-private.h @@ -38,8 +38,9 @@ static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer) if (buffer->count != (ssize_t) sizeof(buffer->data)) return(EOF); buffer->offset=0; + buffer->count=0; } - if (buffer->offset == 0) + if ((buffer->offset == 0) && (buffer->count == 0)) { buffer->count=ReadBlob(buffer->image,sizeof(buffer->data),buffer->data); if (buffer->count < 1) @@ -53,13 +54,13 @@ static inline char *GetMagickByteBufferDatum(MagickByteBuffer *buffer) ssize_t i; - i=1; /* Skip first to avoid reload of buffer */ + i=0; while (buffer->offset < buffer->count) buffer->data[i++]=buffer->data[buffer->offset++]; buffer->count=ReadBlob(buffer->image,sizeof(buffer->data)-i,buffer->data+i); buffer->count+=i; - buffer->offset=1; - return((char *) buffer->data+1); + buffer->offset=0; + return((char *) buffer->data); } static void CheckMagickByteBuffer(MagickByteBuffer *buffer,