Hello community,

here is the log from the commit of package xorg-x11-server for openSUSE:Factory 
checked in at 2020-09-18 14:24:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old)
 and      /work/SRC/openSUSE:Factory/.xorg-x11-server.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xorg-x11-server"

Fri Sep 18 14:24:31 2020 rev:386 rq:833405 version:1.20.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes  
2020-09-03 01:10:51.008400904 +0200
+++ 
/work/SRC/openSUSE:Factory/.xorg-x11-server.new.4249/xorg-x11-server.changes    
    2020-09-18 14:26:48.291193951 +0200
@@ -1,0 +2,6 @@
+Wed Sep  9 18:50:37 UTC 2020 - Michael Gorse <[email protected]>
+
+-Add U_xfree86_take_second_ref_for_xcursor.patch: fix
+  use-after-free when switching VTs.
+
+-------------------------------------------------------------------

New:
----
  U_xfree86_take_second_ref_for_xcursor.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.PAQ0vB/_old  2020-09-18 14:26:54.431200134 +0200
+++ /var/tmp/diff_new_pack.PAQ0vB/_new  2020-09-18 14:26:54.435200138 +0200
@@ -249,6 +249,7 @@
 Patch1505:      U_xwayland-Allow-passing-a-fd.patch
 
 Patch1600:      U_glamor_egl-Reject-OpenGL-2.1-early-on.patch
+Patch1700:      U_xfree86_take_second_ref_for_xcursor.patch
 
 %description
 This package contains the X.Org Server.
@@ -398,6 +399,7 @@
 %patch1503 -p1
 %patch1505 -p1
 %patch1600 -p1
+%patch1700 -p1
 
 %build
 %define _lto_cflags %{nil}

++++++ U_xfree86_take_second_ref_for_xcursor.patch ++++++
>From 919f1f46fc67dae93b2b3f278fcbfc77af34ec58 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <[email protected]>
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
---
 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


Reply via email to