DDX/Randr: Avoid server crash when xrandr SetConfig is called while switched away

A call to Xrandr SetScreenConfig (for randr 1.1) causes the Xserver to
crash when xf86SetViewport() which does not check if the hardware is
accessible.
Wrap accesses to xf86SetViewport() with if (vtSema) { ... } to avoid that.

Signed-off-by: Egbert Eich <eich@freedesktop.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Egbert Eich 2013-08-12 18:21:33 +02:00 committed by Keith Packard
parent 508e05777a
commit 2aa5092b88

View File

@ -214,13 +214,15 @@ xf86RandRSetMode(ScreenPtr pScreen,
*/ */
xf86ReconfigureLayout(); xf86ReconfigureLayout();
if (scrp->vtSema) {
/* /*
* Make sure the whole screen is visible * Make sure the whole screen is visible
*/ */
xf86SetViewport(pScreen, pScreen->width, pScreen->height); xf86SetViewport (pScreen, pScreen->width, pScreen->height);
xf86SetViewport(pScreen, 0, 0); xf86SetViewport (pScreen, 0, 0);
if (pRoot && scrp->vtSema) if (pRoot)
(*scrp->EnableDisableFBAccess) (scrp, TRUE); (*scrp->EnableDisableFBAccess) (scrp, TRUE);
}
return ret; return ret;
} }