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
Родитель 09b49486b9
Коммит eae141e227
1 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -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);