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(); | ||||
| 
 | ||||
|     /*
 | ||||
|      * Make sure the whole screen is visible | ||||
|      */ | ||||
|     xf86SetViewport(pScreen, pScreen->width, pScreen->height); | ||||
|     xf86SetViewport(pScreen, 0, 0); | ||||
|     if (pRoot && scrp->vtSema) | ||||
|         (*scrp->EnableDisableFBAccess) (scrp, TRUE); | ||||
|     if (scrp->vtSema) { | ||||
|         /*
 | ||||
|          * Make sure the whole screen is visible | ||||
|          */ | ||||
|         xf86SetViewport (pScreen, pScreen->width, pScreen->height); | ||||
|         xf86SetViewport (pScreen, 0, 0); | ||||
|         if (pRoot) | ||||
|             (*scrp->EnableDisableFBAccess) (scrp, TRUE); | ||||
|     } | ||||
|     return ret; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue