From unknown Sat May 16 21:00:10 2026
X-Loop: owner@bugs.x2go.org
Subject: Bug#776: nx-X11: Size of pointer 'server_support' used instead of size of its data
Reply-To: Heinrich Schuchardt <xypron.glpk@gmx.de>, 776@bugs.x2go.org
Resent-From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Resent-To: x2go-dev@lists.x2go.org
Resent-CC: X2Go Developers <x2go-dev@lists.x2go.org>
X-Loop: owner@bugs.x2go.org
Resent-Date: Mon, 02 Feb 2015 19:55:01 +0000
Resent-Message-ID: <handler.776.B776.142290675021436@bugs.x2go.org>
Resent-Sender: owner@bugs.x2go.org
X-X2Go-PR-Message: followup 776
X-X2Go-PR-Package: nx-libs
X-X2Go-PR-Keywords: 
Received: via spool by 776-submit@bugs.x2go.org id=B776.142290675021436
          (code B ref 776); Mon, 02 Feb 2015 19:55:01 +0000
Received: (at 776) by bugs.x2go.org; 2 Feb 2015 19:52:30 +0000
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
	ymir.das-netzwerkteam.de
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
	URIBL_BLOCKED autolearn=ham version=3.3.2
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19])
	by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id 50CCF3BC93
	for <776@bugs.x2go.org>; Mon,  2 Feb 2015 20:52:29 +0100 (CET)
Received: from [192.168.123.39] ([178.201.93.16]) by mail.gmx.com (mrgmx002)
 with ESMTPSA (Nemesis) id 0LcT2M-1XqDYQ00NK-00juTT for <776@bugs.x2go.org>;
 Mon, 02 Feb 2015 20:52:28 +0100
Message-ID: <54CFD57B.8030608@gmx.de>
Date: Mon, 02 Feb 2015 20:52:27 +0100
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0
MIME-Version: 1.0
To: 776@bugs.x2go.org
Content-Type: multipart/mixed;
 boundary="------------030207030609090809050909"
X-Provags-ID:  V03:K0:U1rd4lodh9RCyPM87JwmRhGC136aKfb2wHz45NFVVHDSPoRy0+w
 1cWEVAbZFNzdYhdriWq6NcZV3eIWN4rlc7DrWECqfWH/aeoRaPRfA9x4O9SzX2eCxAEPZho
 yI4+5WyHKn6J6jXKEGx6A3ktMlxfQ9C1RKGtx4j8hdnw6v9fhSBDaMbZ707bFdxaRHbPZGw
 iioyXe9SXkK8ilEy/TFvg==
X-UI-Out-Filterresults: notjunk:1;

This is a multi-part message in MIME format.
--------------030207030609090809050909
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

The appended patch

From: Ian Romanick <idr@us.ibm.com>
Date: Thu, 13 Jul 2006 15:27:37 +0000
Subject: [PATCH] Move initialization of server_support from
__glXProcessServerString to __glXCalcualteUsableExtensions.

should solve the problem. I adjusted the file path to make it applicable
to x2go.

Cf.
https://bugs.freedesktop.org/show_bug.cgi?id=7353

The patch dates from *** 2006 ***. We definitely should rebase the mesa
code.

Best regards

Heinrich Schuchardt


--------------030207030609090809050909
Content-Type: text/x-patch;
 name="0001-Move-initialization-of-server_support-from-__glXProc.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
 filename*0="0001-Move-initialization-of-server_support-from-__glXProc.pa";
 filename*1="tch"

=46rom 7ef4a07165d49e671f6f569ee87bfe893b1e7fcf Mon Sep 17 00:00:00 2001
From: Ian Romanick <idr@us.ibm.com>
Date: Thu, 13 Jul 2006 15:27:37 +0000
Subject: [PATCH] Move initialization of server_support from
 __glXProcessServerString to __glXCalcualteUsableExtensions.  By having b=
oth
 callers of __glXProcessServerString initialize the bit-fields passed in,=
 we
 guarantee that the correct amount of data is initialized:

This fixes bugzilla #7353.
---
 nx-X11/extras/Mesa/src/glx/x11/glxextensions.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/nx-X11/extras/Mesa/src/glx/x11/glxextensions.c b/nx-X11/extr=
as/Mesa/src/glx/x11/glxextensions.c
index c3bc930..d00bdbb 100644
--- a/nx-X11/extras/Mesa/src/glx/x11/glxextensions.c
+++ b/nx-X11/extras/Mesa/src/glx/x11/glxextensions.c
@@ -319,6 +319,11 @@ set_glx_extension( const struct extension_info * ext=
,
  *=20
  * \param server_string   GLX extension string from the server.
  * \param server_support  Bit-field of supported extensions.
+ *=20
+ * \note
+ * This function is used to process both GLX and GL extension strings.  =
The
+ * bit-fields used to track each of these have different sizes.  Therefo=
re,
+ * the data pointed by \c server_support must be preinitialized to zero.=

  */
 static void
 __glXProcessServerString( const struct extension_info * ext,
@@ -328,8 +333,6 @@ __glXProcessServerString( const struct extension_info=
 * ext,
    unsigned  base;
    unsigned  len;
=20
-   (void) memset( server_support, 0, sizeof( server_support ) );
-  =20
    for ( base =3D 0 ; server_string[ base ] !=3D NUL ; /* empty */ ) {
       /* Determine the length of the next extension name.
        */
@@ -580,6 +583,8 @@ __glXCalculateUsableExtensions( __GLXscreenConfigs *p=
sc,
=20
    __glXExtensionsCtr();
    __glXExtensionsCtrScreen( psc );
+
+   (void) memset( server_support, 0, sizeof( server_support ) );
    __glXProcessServerString( known_glx_extensions,
 			     psc->serverGLXexts, server_support );
=20
--=20
2.1.4


--------------030207030609090809050909--
