1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
|