Bug 83804 - bounds check transparent pixel index to be inside colormap.

r=pavlov, sr=blizzard, a=asa
This commit is contained in:
tor%cs.brown.edu 2001-06-08 04:36:25 +00:00
parent 2f9dc4f2ef
commit 72f01417ff

View File

@ -497,12 +497,13 @@ int HaveDecodedRow(
case gfxIFormats::RGB_A1:
case gfxIFormats::BGR_A1:
{
if (decoder->mGIFStruct->is_transparent) {
if (decoder->mGIFStruct->is_transparent &&
(decoder->mGIFStruct->tpixel < cmapsize)) {
gfx_color transColor = 0;
transColor |= cmap[decoder->mGIFStruct->tpixel].red;
transColor |= cmap[decoder->mGIFStruct->tpixel].green << 8;
transColor |= cmap[decoder->mGIFStruct->tpixel].blue << 16;
decoder->mImageFrame->SetTransparentColor(transColor);
transColor |= cmap[decoder->mGIFStruct->tpixel].red;
transColor |= cmap[decoder->mGIFStruct->tpixel].green << 8;
transColor |= cmap[decoder->mGIFStruct->tpixel].blue << 16;
decoder->mImageFrame->SetTransparentColor(transColor);
}
memset(decoder->mRGBLine, 0, bpr);