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