diff options
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch | 34 | ||||
-rw-r--r-- | PKGBUILD | 7 |
3 files changed, 43 insertions, 2 deletions
@@ -1,6 +1,6 @@ pkgbase = xorg-server-noudev pkgver = 1.20.9 - pkgrel = 1 + pkgrel = 2 url = https://xorg.freedesktop.org arch = x86_64 arch = aarch64 @@ -41,6 +41,7 @@ pkgbase = xorg-server-noudev source = xserver-autobind-hotplug.patch source = 0001-v2-FS-58644.patch source = 0002-fix-libshadow-2.patch + source = 0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch source = xvfb-run source = xvfb-run.1 validpgpkeys = 7B27A3F1A6E18CD9588B4AE8310180050905E40C @@ -53,6 +54,7 @@ pkgbase = xorg-server-noudev sha512sums = d84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22 sha512sums = 74e1aa0c101e42f0f25349d305641873b3a79ab3b9bb2d4ed68ba8e392b4db2701fcbc35826531ee2667d3ee55673e4b4fecc2a9f088141af29ceb400f72f363 sha512sums = 3d3be34ad9fa976daec53573d3a30a9f1953341ba5ee27099af0141f0ef7994fa5cf84dc08aae848380e6abfc10879f9a67f07601c7a437abf8aef13a3ec9fe1 + sha512sums = 7511af2aa99e2f6398987350ad0ff089c22c10017d40981ab610201b953ca4b29cd24aa1ff201ba792f03bdcca7d59d34c2809f4691f84bd86e8ec8016dd279d sha512sums = 73c8ead9fba6815dabfec0a55b3a53f01169f6f2d14ac4a431e53b2d96028672dbd6b50a3314568847b37b1e54ea4fc02bdf677feabb3b2697af55e2e5331810 sha512sums = de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22 diff --git a/0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch b/0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch new file mode 100644 index 000000000000..872259bb8093 --- /dev/null +++ b/0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch @@ -0,0 +1,34 @@ +From 919f1f46fc67dae93b2b3f278fcbfc77af34ec58 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com> +Date: Mon, 31 Aug 2020 12:10:43 +0200 +Subject: [PATCH] xfree86: Take second reference for SavedCursor in + xf86CursorSetCursor + +The same pointer is kept in CurrentCursor as well, therefore two +RefCursor calls are needed. + +Fixes use-after-free after switching VTs. + +Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1067 +Signed-off-by: Laurent Carlier <lordheavym@gmail.com> +--- + hw/xfree86/ramdac/xf86CursorRD.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/hw/xfree86/ramdac/xf86CursorRD.c b/hw/xfree86/ramdac/xf86CursorRD.c +index 9aa3de97b..c8362d169 100644 +--- a/hw/xfree86/ramdac/xf86CursorRD.c ++++ b/hw/xfree86/ramdac/xf86CursorRD.c +@@ -334,6 +334,9 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs, + ScreenPriv->HotY = cursor->bits->yhot; + + if (!infoPtr->pScrn->vtSema) { ++ cursor = RefCursor(cursor); ++ if (ScreenPriv->SavedCursor) ++ FreeCursor(ScreenPriv->SavedCursor, None); + ScreenPriv->SavedCursor = cursor; + return; + } +-- +2.28.0 + @@ -11,7 +11,7 @@ _pkgbase=xorg-server pkgname=('xorg-server-noudev' 'xorg-server-xephyr-noudev' 'xorg-server-xvfb-noudev' 'xorg-server-xnest-noudev' 'xorg-server-xwayland-noudev' 'xorg-server-common-noudev' 'xorg-server-devel-noudev') pkgver=1.20.9 -pkgrel=1 +pkgrel=2 arch=('x86_64' 'aarch64') license=('custom') groups=('xorg-noudev') @@ -26,6 +26,7 @@ source=(https://xorg.freedesktop.org/releases/individual/xserver/${_pkgbase}-${p xserver-autobind-hotplug.patch 0001-v2-FS-58644.patch 0002-fix-libshadow-2.patch + 0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch xvfb-run # with updates from FC master xvfb-run.1) validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C' @@ -38,6 +39,7 @@ sha512sums=('d9b5f93e1b9763a89187d8b272aa7d4ce9709641b8539f4536708af153310e5a493 'd84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22' '74e1aa0c101e42f0f25349d305641873b3a79ab3b9bb2d4ed68ba8e392b4db2701fcbc35826531ee2667d3ee55673e4b4fecc2a9f088141af29ceb400f72f363' '3d3be34ad9fa976daec53573d3a30a9f1953341ba5ee27099af0141f0ef7994fa5cf84dc08aae848380e6abfc10879f9a67f07601c7a437abf8aef13a3ec9fe1' + '7511af2aa99e2f6398987350ad0ff089c22c10017d40981ab610201b953ca4b29cd24aa1ff201ba792f03bdcca7d59d34c2809f4691f84bd86e8ec8016dd279d' '73c8ead9fba6815dabfec0a55b3a53f01169f6f2d14ac4a431e53b2d96028672dbd6b50a3314568847b37b1e54ea4fc02bdf677feabb3b2697af55e2e5331810' 'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22') @@ -53,6 +55,9 @@ prepare() { # Fix libshadow.so: libfb.so => not found - merge in master patch -Np1 -i ../0002-fix-libshadow-2.patch + + # Fix FS#67774 - merged upstream + patch -Np1 -i ../0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch } build() { |