gif: fix oob reads w/bad colormaps

Verify the color map is inbounds before indexing with it.

https://bugs.debian.org/785369
This commit is contained in:
Bernhard Übelacker 2016-04-02 13:05:21 -04:00 committed by Mike Frysinger
parent c0747f9fc9
commit 16de244bd0
1 changed files with 10 additions and 3 deletions

View File

@ -170,9 +170,16 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
}
else
{
r = cmap->Colors[rows[i][j]].Red;
g = cmap->Colors[rows[i][j]].Green;
b = cmap->Colors[rows[i][j]].Blue;
if (rows[i][j] < cmap->ColorCount)
{
r = cmap->Colors[rows[i][j]].Red;
g = cmap->Colors[rows[i][j]].Green;
b = cmap->Colors[rows[i][j]].Blue;
}
else
{
r = g = b = 0;
}
*ptr++ = (0xff << 24) | (r << 16) | (g << 8) | b;
}
per += per_inc;