Commit 0b3abacb authored by Torsten Kaiser's avatar Torsten Kaiser Committed by Keith Packard

xfree86: EDID Est III parsing can walk off end of array

Using -O3 gcc notes that m could reach beyound the end of the EstIIIModes array,
if the last bits of the 11s byte where set.
Fix this, by extending the array to cover all possible bits from est.

https://bugs.freedesktop.org/show_bug.cgi?id=45623Signed-off-by: default avatarTorsten Kaiser <x11@ariolc.dyndns.org>
Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
parent 9e4b8b74
......@@ -723,7 +723,13 @@ static const struct {
1920, 1200, 75, 0}, {
1920, 1200, 85, 0}, {
1920, 1440, 60, 0}, {
1920, 1440, 75, 0},};
1920, 1440, 75, 0},
/* fill up last byte */
{
0,0,0,0}, {
0,0,0,0}, {
0,0,0,0}, {
0,0,0,0}, };
static DisplayModePtr
DDCModesFromEstIII(unsigned char *est)
......@@ -735,7 +741,8 @@ DDCModesFromEstIII(unsigned char *est)
for (j = 7; j > 0; j--) {
if (est[i] & (1 << j)) {
m = (i * 8) + (7 - j);
modes = xf86ModesAdd(modes,
if (EstIIIModes[m].w)
modes = xf86ModesAdd(modes,
FindDMTMode(EstIIIModes[m].w,
EstIIIModes[m].h,
EstIIIModes[m].r,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment