Fix for CVE-2007-3069 from X.Org git repository:
Don't break grab and focus state for a window when redirecting it. Composite uses an unmap/map cycle to trigger backing pixmap allocation and cliprect recomputation when a window is redirected or unredirected. To avoid protocol visible side effects, map and unmap events are disabled temporarily. However, when a window is unmapped it is also removed from grabs and loses focus, but these state changes are not disabled. This change supresses the unmap side effects during the composite unmap/map cycle and fixes a bug where a compositing window manager would cause the screensaver to lose its grab when it unredirects the fullscreen lock window.
This commit is contained in:
parent
7d9176c215
commit
2610b1cdea
@ -3023,7 +3023,8 @@ UnrealizeTree(
|
||||
}
|
||||
#endif
|
||||
(* Unrealize)(pChild);
|
||||
DeleteWindowFromAnyEvents(pChild, FALSE);
|
||||
if (MapUnmapEventsEnabled(pWin))
|
||||
DeleteWindowFromAnyEvents(pChild, FALSE);
|
||||
if (pChild->viewable)
|
||||
{
|
||||
#ifdef DO_SAVE_UNDERS
|
||||
|
Loading…
Reference in New Issue
Block a user