[VIDEOPRT] Workaround bug CORE-16695 (infinite loop when reading EDID on LiveCD in QEMU)

For some reason, we don't get valid EDIDs when using LiveCD on QEMU.
We ignore them, and try to read the one of the next child.
This leads to a infinite loop and then, an out of memory error.

As it can also happen in other circonstances, stop enumeration as soon
as an invalid EDID is detected.

This breaks configurations with graphic cards with 2+ outputs, where
the first one is not plugged to a monitor, and the second one is plugged
to a monitor.

CORE-16695
This commit is contained in:
Hervé Poussineau 2020-03-01 10:06:18 +01:00
parent a05051f554
commit 340d9360c3

View file

@ -1225,6 +1225,10 @@ VideoPortEnumerateChildren(
{
/* Mark it invalid */
ChildExtension->EdidValid = FALSE;
// FIXME: the following break workarounds CORE-16695
// but prevents graphic cards to return an invalid
// EDID as first child, and a valid one as second child.
break;
}
}
}