Module Name: xsrc Committed By: martin Date: Sat Apr 1 15:34:12 UTC 2023
Modified Files: xsrc/external/mit/xorg-server.old/dist/composite [netbsd-9]: compwindow.c xsrc/external/mit/xorg-server/dist/composite [netbsd-9]: compwindow.c Log Message: Pull up the following, requested by mrg in ticket #1619: xsrc/external/mit/xorg-server/dist/composite/compwindow.c up to 1.1.1.9 (patch) xsrc/external/mit/xorg-server.old/dist/composite/compwindow.c 1.2 (patch) Fix ZDI-CAN-19866 and CVE-2023-1393, a use-after-free problem. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.1.1.1.4.1 \ xsrc/external/mit/xorg-server.old/dist/composite/compwindow.c cvs rdiff -u -r1.1.1.7 -r1.1.1.7.2.1 \ xsrc/external/mit/xorg-server/dist/composite/compwindow.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: xsrc/external/mit/xorg-server.old/dist/composite/compwindow.c diff -u xsrc/external/mit/xorg-server.old/dist/composite/compwindow.c:1.1.1.1 xsrc/external/mit/xorg-server.old/dist/composite/compwindow.c:1.1.1.1.4.1 --- xsrc/external/mit/xorg-server.old/dist/composite/compwindow.c:1.1.1.1 Thu Jun 9 09:07:56 2016 +++ xsrc/external/mit/xorg-server.old/dist/composite/compwindow.c Sat Apr 1 15:34:11 2023 @@ -588,6 +588,11 @@ compDestroyWindow (WindowPtr pWin) ret = (*pScreen->DestroyWindow) (pWin); cs->DestroyWindow = pScreen->DestroyWindow; pScreen->DestroyWindow = compDestroyWindow; + + /* Did we just destroy the overlay window? */ + if (pWin == cs->pOverlayWin) + cs->pOverlayWin = NULL; + /* compCheckTree (pWin->drawable.pScreen); can't check -- tree isn't good*/ return ret; } Index: xsrc/external/mit/xorg-server/dist/composite/compwindow.c diff -u xsrc/external/mit/xorg-server/dist/composite/compwindow.c:1.1.1.7 xsrc/external/mit/xorg-server/dist/composite/compwindow.c:1.1.1.7.2.1 --- xsrc/external/mit/xorg-server/dist/composite/compwindow.c:1.1.1.7 Mon Dec 31 09:36:07 2018 +++ xsrc/external/mit/xorg-server/dist/composite/compwindow.c Sat Apr 1 15:34:11 2023 @@ -613,6 +613,11 @@ compDestroyWindow(WindowPtr pWin) ret = (*pScreen->DestroyWindow) (pWin); cs->DestroyWindow = pScreen->DestroyWindow; pScreen->DestroyWindow = compDestroyWindow; + + /* Did we just destroy the overlay window? */ + if (pWin == cs->pOverlayWin) + cs->pOverlayWin = NULL; + /* compCheckTree (pWin->drawable.pScreen); can't check -- tree isn't good*/ return ret; }