]> granicus.if.org Git - imagemagick/commitdiff
Read one byte less to make sure we get a null terminated buffer.
authorDirk Lemstra <dirk@lemstra.org>
Thu, 18 Jul 2019 20:05:23 +0000 (22:05 +0200)
committerDirk Lemstra <dirk@lemstra.org>
Thu, 18 Jul 2019 20:05:23 +0000 (22:05 +0200)
coders/bytebuffer-private.h

index c70219bc987db20ba846313005fee07456898a62..38b5467ba926a213839b680f54089690b613aafd 100644 (file)
@@ -35,14 +35,14 @@ static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer)
 {
   if ((buffer->offset == buffer->count) && (buffer->offset > 0))
     {
-      if (buffer->count != (ssize_t) sizeof(buffer->data))
+      if (buffer->count != (ssize_t) sizeof(buffer->data)-1)
         return(EOF);
       buffer->offset=0;
       buffer->count=0;
     }
   if ((buffer->offset == 0) && (buffer->count == 0))
     {
-      buffer->count=ReadBlob(buffer->image,sizeof(buffer->data),buffer->data);
+      buffer->count=ReadBlob(buffer->image,sizeof(buffer->data)-1,buffer->data);
       if (buffer->count < 1)
         return(EOF);
     }
@@ -58,7 +58,7 @@ static inline char *GetMagickByteBufferDatum(MagickByteBuffer *buffer)
   i=0;
   while (buffer->offset < buffer->count)
     buffer->data[i++]=buffer->data[buffer->offset++];
-  count=ReadBlob(buffer->image,sizeof(buffer->data)-i,buffer->data+i);
+  count=ReadBlob(buffer->image,sizeof(buffer->data)-1-i,buffer->data+i);
   buffer->count=i;
   if (count > 0)
     buffer->count+=count;