Blame SOURCES/0001-modesetting-Fix-msSharePixmapBacking-Segfault-Regres.patch

ad2a79
From 88f0787f93f097a125a0aa156eb9a5628adfc2c2 Mon Sep 17 00:00:00 2001
ad2a79
From: Alex Goins <agoins@nvidia.com>
ad2a79
Date: Thu, 12 Dec 2019 20:18:53 -0600
ad2a79
Subject: [PATCH xserver] modesetting: Fix msSharePixmapBacking Segfault
ad2a79
 Regression
ad2a79
MIME-Version: 1.0
ad2a79
Content-Type: text/plain; charset=UTF-8
ad2a79
Content-Transfer-Encoding: 8bit
ad2a79
ad2a79
Commit cb1b1e184 modified msSharePixmapBacking() to derive modesettingPtr from
ad2a79
the 'screen' argument. Unfortunately, the name of the argument is misleading --
ad2a79
the screen is the slave screen. If the master is modesetting,
ad2a79
and the slave is not modesetting, it will segfault.
ad2a79
ad2a79
To fix the problem, this change derives modesettingPtr from
ad2a79
ppix->drawable.pScreen. This method is already used when calling
ad2a79
ms->glamor.shareable_fd_from_pixmap() later in the function.
ad2a79
ad2a79
To avoid future issues, this change also renames the 'screen' argument to
ad2a79
'slave'.
ad2a79
ad2a79
Signed-off-by: Alex Goins <agoins@nvidia.com>
ad2a79
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
ad2a79
(cherry picked from commit 456dff1bf890459840718339279dcb84d36531eb)
ad2a79
---
ad2a79
 hw/xfree86/drivers/modesetting/driver.c | 5 +++--
ad2a79
 1 file changed, 3 insertions(+), 2 deletions(-)
ad2a79
ad2a79
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
ad2a79
index ce8bac9f5..0817fa470 100644
ad2a79
--- a/hw/xfree86/drivers/modesetting/driver.c
ad2a79
+++ b/hw/xfree86/drivers/modesetting/driver.c
ad2a79
@@ -1454,10 +1454,11 @@ CreateScreenResources(ScreenPtr pScreen)
ad2a79
 }
ad2a79
 
ad2a79
 static Bool
ad2a79
-msSharePixmapBacking(PixmapPtr ppix, ScreenPtr screen, void **handle)
ad2a79
+msSharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle)
ad2a79
 {
ad2a79
 #ifdef GLAMOR_HAS_GBM
ad2a79
-    modesettingPtr ms = modesettingPTR(xf86ScreenToScrn(screen));
ad2a79
+    modesettingPtr ms =
ad2a79
+        modesettingPTR(xf86ScreenToScrn(ppix->drawable.pScreen));
ad2a79
     int ret;
ad2a79
     CARD16 stride;
ad2a79
     CARD32 size;
ad2a79
-- 
ad2a79
2.34.1
ad2a79