[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#990650: nxagent in shadow mode causes a segfault (since 3.5.99.26-1)



Package: nxagent
Version: 3.5.99.26-1
Severity: important
Tags: patch
Fixed: 3.5.99.25-1

For some unknown reason, upstream discovered a regression in nxagent (aka x2goagent with X2Go). When connecting to an existing X11 session ("connect to local desktop"), one gets an nxagent/x2goagent crash:
```
                Stack trace of thread 663053:
#0 0x00005f237a3f4f0b RREditConnectionInfo (nxagent + 0x32ff0b) #1 0x00005f237a17f840 nxagentChangeScreenConfig (nxagent + 0xba840) #2 0x00005f237a16d2e9 nxagentDispatchEvents (nxagent + 0xa82e9) #3 0x00005f237a167e2d nxagentDisplayWriteHandler (nxagent + 0xa2e2d) #4 0x000079af2a8bf6f1 _XSendClientPrefix (libX11.so.6 + 0x266f1)
                #5  0x000079af2a8d2cd4 XOpenDisplay (libX11.so.6 + 0x39cd4)
#6 0x000079af2a74a9a4 _ZN6Poller4initEv (libXcompshad.so.3 + 0x99a4) #7 0x000079af2a74806c NXShadowCreate (libXcompshad.so.3 + 0x706c)
                #8  0x00005f237a17f92a nxagentShadowInit (nxagent + 0xba92a)
#9 0x00005f237a1172fb DefineInitialRootWindow (nxagent + 0x522fb)
                #10 0x00005f237a1079f0 main (nxagent + 0x429f0)
                #11 0x000079af2a0ab082 __libc_start_main (libc.so.6 + 0x27082)
                #12 0x00005f237a107d7e _start (nxagent + 0x42d7e)
```

It is 100% reproducible, 3.5.99.25 worked fine.

The upstream issue is at https://github.com/ArcticaProject/nx-libs/issues/1009

Patch for this (a commit backported from X.Org) is attached.

Mike
--

DAS-NETZWERKTEAM
c\o Technik- und Ökologiezentrum Eckernförde
Mike Gabriel, Marienthaler Str. 17, 24340 Eckernförde
mobile: +49 (1520) 1976 148
landline: +49 (4351) 850 8940

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de

>From a14e1a59a4025cbb464b5deeed0f50d5a2898b0c Mon Sep 17 00:00:00 2001
From: Ulrich Sibiller <uli42@gmx.de>
Date: Wed, 17 Mar 2021 21:16:26 +0100
Subject: [PATCH] randr: Do not update ConnectionInfo if NULL

Backport of this xorg-xserver commit:

  commit 941aeb3b92e644923bd112eef8023f033a140ee6
  Author: Olivier Fourdan <ofourdan@redhat.com>
  Date:   Fri May 13 08:58:58 2016 +0200

    randr: Do not update ConnectionInfo if NULL

    RRScreenSizeNotify() will update the connection information block, but
    if this occurs during initialization before ConnectionInfo is even
    initialized, this will lead to a crash.

    Simply check for ConnectionInfo prior to update it to avoid the crash.

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95337
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>

Fixes ArcticaProject/nx-libs#1009

Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
---
 nx-X11/programs/Xserver/randr/rrscreen.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/nx-X11/programs/Xserver/randr/rrscreen.c b/nx-X11/programs/Xserver/randr/rrscreen.c
index 4f59e9aea..90371704a 100644
--- a/nx-X11/programs/Xserver/randr/rrscreen.c
+++ b/nx-X11/programs/Xserver/randr/rrscreen.c
@@ -66,6 +66,9 @@ RREditConnectionInfo(ScreenPtr pScreen)
     int screen = 0;
     int d;
 
+    if (ConnectionInfo == NULL)
+        return;
+
     connSetup = (xConnSetup *) ConnectionInfo;
     vendor = (char *) connSetup + sizeof(xConnSetup);
     formats = (xPixmapFormat *) ((char *) vendor +
-- 
2.30.2

Attachment: pgpSvoyT7j34M.pgp
Description: Digitale PGP-Signatur


Reply to: