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:
parent
508e05777a
commit
2aa5092b88
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue