diff -urN optipng-0.6.1.1/lib/pngxtern/gif/gifread.c optipng-0.6.1.2/lib/pngxtern/gif/gifread.c --- optipng-0.6.1.1/lib/pngxtern/gif/gifread.c 2006-08-10 21:17:00.000000000 -0300 +++ optipng-0.6.1.2/lib/pngxtern/gif/gifread.c 2009-02-26 16:12:20.000000000 -0300 @@ -219,8 +219,7 @@ **/ static void GIFReadNextExtension(struct GIFExtension *ext, FILE *stream) { - unsigned char *ptr; - unsigned int len; + unsigned int offset, len; int count, label; GIF_FGETC(label, stream); @@ -233,7 +232,7 @@ return; } - ptr = ext->Buffer; + offset = 0; len = ext->BufferSize; for ( ;; ) { @@ -243,10 +242,10 @@ ext->BufferSize += 1024; ext->Buffer = realloc(ext->Buffer, ext->BufferSize); } - count = ReadDataBlock(ptr, stream); + count = ReadDataBlock(ext->Buffer + offset, stream); if (count == 0) break; - ptr += count; + offset += count; len -= count; } }