extra/xorg-server to 1.20.9-2

This commit is contained in:
Kevin Mihelich 2020-09-02 13:46:06 +00:00
parent 20dcae4de3
commit b742597370
2 changed files with 40 additions and 1 deletions

View file

@ -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

View file

@ -8,7 +8,7 @@ pkgbase=xorg-server
pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xvfb' 'xorg-server-xnest'
'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel')
pkgver=1.20.9
pkgrel=1.1
pkgrel=2
arch=('x86_64')
license=('custom')
groups=('xorg')
@ -23,6 +23,7 @@ source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pk
xserver-autobind-hotplug.patch
0001-v2-FS-58644.patch
0002-fix-libshadow-2.patch
0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch
0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
xvfb-run # with updates from FC master
xvfb-run.1)
@ -36,6 +37,7 @@ sha512sums=('d9b5f93e1b9763a89187d8b272aa7d4ce9709641b8539f4536708af153310e5a493
'd84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22'
'74e1aa0c101e42f0f25349d305641873b3a79ab3b9bb2d4ed68ba8e392b4db2701fcbc35826531ee2667d3ee55673e4b4fecc2a9f088141af29ceb400f72f363'
'3d3be34ad9fa976daec53573d3a30a9f1953341ba5ee27099af0141f0ef7994fa5cf84dc08aae848380e6abfc10879f9a67f07601c7a437abf8aef13a3ec9fe1'
'7511af2aa99e2f6398987350ad0ff089c22c10017d40981ab610201b953ca4b29cd24aa1ff201ba792f03bdcca7d59d34c2809f4691f84bd86e8ec8016dd279d'
'9df57f5f00df22865880b726a835b0a68c6e460bcb7481418b83ee0521d93b329dbbbab278ef70c4b577e75bb46fe23535949eeba44fc41107d0726495ca77a7'
'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
# Fix segfault on probing a non-PCI platform device on a system with PCI
patch -Np1 -i ../0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
}