aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/700_nx-X11_mesa-initialize-server-support-correctly.full.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/700_nx-X11_mesa-initialize-server-support-correctly.full.patch')
-rw-r--r--debian/patches/700_nx-X11_mesa-initialize-server-support-correctly.full.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/debian/patches/700_nx-X11_mesa-initialize-server-support-correctly.full.patch b/debian/patches/700_nx-X11_mesa-initialize-server-support-correctly.full.patch
new file mode 100644
index 000000000..3fe8c5745
--- /dev/null
+++ b/debian/patches/700_nx-X11_mesa-initialize-server-support-correctly.full.patch
@@ -0,0 +1,49 @@
+From 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 both
+ 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/extras/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,
+ *
+ * \param server_string GLX extension string from the server.
+ * \param server_support Bit-field of supported extensions.
++ *
++ * \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. Therefore,
++ * 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;
+
+- (void) memset( server_support, 0, sizeof( server_support ) );
+-
+ for ( base = 0 ; server_string[ base ] != NUL ; /* empty */ ) {
+ /* Determine the length of the next extension name.
+ */
+@@ -580,6 +583,8 @@ __glXCalculateUsableExtensions( __GLXscreenConfigs *psc,
+
+ __glXExtensionsCtr();
+ __glXExtensionsCtrScreen( psc );
++
++ (void) memset( server_support, 0, sizeof( server_support ) );
+ __glXProcessServerString( known_glx_extensions,
+ psc->serverGLXexts, server_support );
+
+--
+2.1.4