Re: [PATCH xserver] composite: Fix use-after-free in compReparentWindow
On Thu, 2018-02-22 at 22:25 -0800, Keith Packard wrote: > Peter Harris writes: > > > If an implicitly redirected window is unredirected by the reparent > > operation, cw will be a stale pointer. > > > > Signed-off-by: Peter Harris > > Reviewed-by: Keith Packard Merged, thanks: remote: I: patch #206353 updated using rev efd84bff238f8e12bf652525990d36baada8785b. remote: I: 1 patch(es) updated to state Accepted. To ssh://git.freedesktop.org/git/xorg/xserver ac13d740bf..efd84bff23 master -> master - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver] composite: Fix use-after-free in compReparentWindow
Peter Harris writes: > If an implicitly redirected window is unredirected by the reparent > operation, cw will be a stale pointer. > > Signed-off-by: Peter Harris Reviewed-by: Keith Packard -- -keith signature.asc Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
[PATCH xserver] composite: Fix use-after-free in compReparentWindow
If an implicitly redirected window is unredirected by the reparent operation, cw will be a stale pointer. Signed-off-by: Peter Harris --- composite/compwindow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composite/compwindow.c b/composite/compwindow.c index e74ce661a..54b4e6ac4 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -432,7 +432,7 @@ compReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) { ScreenPtr pScreen = pWin->drawable.pScreen; CompScreenPtr cs = GetCompScreen(pScreen); -CompWindowPtr cw = GetCompWindow(pWin); +CompWindowPtr cw; pScreen->ReparentWindow = cs->ReparentWindow; /* @@ -471,6 +471,7 @@ compReparentWindow(WindowPtr pWin, WindowPtr pPriorParent) cs->ReparentWindow = pScreen->ReparentWindow; pScreen->ReparentWindow = compReparentWindow; +cw = GetCompWindow(pWin); if (pWin->damagedDescendants || (cw && cw->damaged)) compMarkAncestors(pWin); -- 2.14.1 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel