bug in ReadGIFImage when using local colormaps

莫红波 <[email protected]> Wed, 2 Dec 2015 16:07:10 +0800
Newsgroups gmane.comp.video.graphicsmagick.bugs
Message-ID <CACghtk0pnHZXAzZvmACbcJ7tFDPxpXNCTa__HKnbOS3aRMV+yw@mail.gmail.com>
--001a11492104d7b33f0525e5c29a
Content-Type: multipart/alternative; boundary=001a11492104d7b33c0525e5c298

--001a11492104d7b33c0525e5c298
Content-Type: text/plain; charset=UTF-8

Some GIFs set transparent color index equal to size of colormaps which is
an invalid value.

1011     if (opacity >= (long) image->colors)
1012       image->colors=opacity+1;

As code above, Graphicsmagick will set image->colors equal to opacity+1.
However, this is a bug when reading colormaps from image blob.

1067         if (ReadBlob(image,3*image->colors,(char *) colormap) !=
3*image->colors)

ReadBlob will read more colors which are not real color.

BTW, I can't upload GIF Image as it's too large.

--001a11492104d7b33c0525e5c298
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span style=3D"font-size:12.8px">Some GIFs set transparent=
 color index equal to size of colormaps which is an invalid value.</span><d=
iv style=3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px"><di=
v>1011 =C2=A0 =C2=A0 if (opacity &gt;=3D (long) image-&gt;colors)</div><div=
>1012 =C2=A0 =C2=A0 =C2=A0 image-&gt;colors=3Dopacity+1;</div></div><div st=
yle=3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px">As code =
above, Graphicsmagick will set image-&gt;colors equal to opacity+1.</div><d=
iv style=3D"font-size:12.8px">However, this is a bug when reading colormaps=
 from image blob.</div><div style=3D"font-size:12.8px"><br></div><div style=
=3D"font-size:12.8px">1067 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ReadBlob(image,3=
*image-&gt;colors,(char *) colormap) !=3D 3*image-&gt;colors)<br></div><div=
 style=3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px">ReadB=
lob will read more colors which are not real color.</div><div style=3D"font=
-size:12.8px"><br></div><div style=3D"font-size:12.8px">BTW, I can&#39;t up=
load GIF Image as it&#39;s too large.</div></div>

--001a11492104d7b33c0525e5c298--
--001a11492104d7b33f0525e5c29a
Content-Type: application/octet-stream; name="code_gif.patch"
Content-Disposition: attachment; filename="code_gif.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ihoj4tfc0

LS0tIEdyYXBoaWNzTWFnaWNrLTEuMy4yMS9vbGQtY29kZXJzL2dpZi5jCTIwMTUtMDMtMDEgMDQ6
NTE6NTguMDAwMDAwMDAwICswODAwCisrKyBHcmFwaGljc01hZ2ljay0xLjMuMjEvY29kZXJzL2dp
Zi5jCTIwMTUtMTEtMjAgMTE6MzY6MDUuNDI4NzkzODIyICswODAwCkBAIC04NTMsNiArODUzLDcg
QEAKICAgICBkZWxheSwKICAgICBkaXNwb3NlLAogICAgIGdsb2JhbF9jb2xvcnMsCisgICAgbG9j
YWxfY29sb3JzLAogICAgIGltYWdlX2NvdW50LAogICAgIGl0ZXJhdGlvbnM7CiAKQEAgLTEwMDcs
NyArMTAwOCwxNCBAQAogICAgIGltYWdlLT5kZXB0aD04OwogICAgIGZsYWc9UmVhZEJsb2JCeXRl
KGltYWdlKTsKICAgICBpbWFnZS0+aW50ZXJsYWNlPUJpdFNldChmbGFnLDB4NDApID8gTGluZUlu
dGVybGFjZSA6IE5vSW50ZXJsYWNlOwotICAgIGltYWdlLT5jb2xvcnM9IUJpdFNldChmbGFnLDB4
ODApID8gZ2xvYmFsX2NvbG9ycyA6IDB4MDFVIDw8ICgoZmxhZyAmIDB4MDcpKzEpOworICAgIC8q
CisgICAgICogV29ya0Fyb3VuZDoKKyAgICAgKiBJbiBzb21lIEdJRiBpbWFnZXMgdHJhbnNwYXJl
bnQgY29sb3IgaW5kZXggaXMgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBsb2NhbCBjb2xvcnMKKyAg
ICAgKiBhbmQgdGhpcyBpbmRleCBpcyBpbnZhbGlkIG9idmlvdXNseS4gTW9yZW92ZXIsIGl0IHdp
bGwgY2F1c2UgY29ycnVwdCBpbWFnZSB3aGVuIGFsbG9jYXRpbmcKKyAgICAgKiBsb2NhbF9jb2xv
cnMrMSBjb2xvcm1hcCBlbnRyaWVzLiBTbyB3ZSBuZWVkIHRvIHdvcmsgYXJvdW5kLgorICAgICAq
CisgICAgICogKi8KKyAgICBsb2NhbF9jb2xvcnM9aW1hZ2UtPmNvbG9ycz0hQml0U2V0KGZsYWcs
MHg4MCkgPyBnbG9iYWxfY29sb3JzIDogMHgwMVUgPDwgKChmbGFnICYgMHgwNykrMSk7CiAgICAg
aWYgKG9wYWNpdHkgPj0gKGxvbmcpIGltYWdlLT5jb2xvcnMpCiAgICAgICBpbWFnZS0+Y29sb3Jz
PW9wYWNpdHkrMTsKICAgICBpbWFnZS0+cGFnZS53aWR0aD1wYWdlLndpZHRoOwpAQCAtMTA2NCw3
ICsxMDcyLDcgQEAKICAgICAgICAgICAgIFRocm93UmVhZGVyRXhjZXB0aW9uKFJlc291cmNlTGlt
aXRFcnJvcixNZW1vcnlBbGxvY2F0aW9uRmFpbGVkLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW1hZ2UpOwogICAgICAgICAgIH0KLSAgICAgICAgaWYgKFJlYWRCbG9iKGltYWdl
LDMqaW1hZ2UtPmNvbG9ycywoY2hhciAqKSBjb2xvcm1hcCkgIT0gMyppbWFnZS0+Y29sb3JzKQor
ICAgICAgICBpZiAoUmVhZEJsb2IoaW1hZ2UsMypsb2NhbF9jb2xvcnMsKGNoYXIgKikgY29sb3Jt
YXApICE9IDMqbG9jYWxfY29sb3JzKQogCSAgewogCSAgICBNYWdpY2tGcmVlTWVtb3J5KGdsb2Jh
bF9jb2xvcm1hcCk7CiAJICAgIE1hZ2lja0ZyZWVNZW1vcnkoY29sb3JtYXApOwo=
--001a11492104d7b33f0525e5c29a
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
--001a11492104d7b33f0525e5c29a
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Graphicsmagick-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/graphicsmagick-bugs

--001a11492104d7b33f0525e5c29a--