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;
}