On 01/07/2013 06:35 AM, Jorge Ramirez Ortiz, HCL Europe wrote:
-----Original Message-----
From: Dan Nicholson [mailto:dbn.li...@gmail.com]
Sent: Monday, January 07, 2013 2:31 PM
To: Jorge Ramirez Ortiz, HCL Europe
Cc: mesa-dev@lists.freedesktop.org
Subject: Re: [Mesa-dev] glxinfo proposed change

On Mon, Jan 7, 2013 at 5:06 AM, Jorge Ramirez Ortiz,  HCL Europe
<jorge.ramirez-or...@hcl.com> wrote:
Hi all,

Does this patch make sense? glVersion can be NULL and not having the
changes below could cause a SIGSEGV

[jramirez@calypso-2 mesa-demos.git (tmp *)]$ git diff src/xdemos/glxinfo.c
diff --git a/src/xdemos/glxinfo.c b/src/xdemos/glxinfo.c
index aa6430d..97b6539 100644
--- a/src/xdemos/glxinfo.c
+++ b/src/xdemos/glxinfo.c
@@ -639,7 +639,7 @@ print_screen_info(Display *dpy, int scrnum, Bool
allowDirect, Bool limits, Bool
        printf("OpenGL renderer string: %s\n", glRenderer);
        printf("OpenGL version string: %s\n", glVersion);
  #ifdef GL_VERSION_2_0
-      if (glVersion[0] >= '2' && glVersion[1] == '.') {
+      if (glVersion && glVersion[0] >= '2' && glVersion[1] == '.') {
           char *v = (char *) glGetString(GL_SHADING_LANGUAGE_VERSION);
           printf("OpenGL shading language version string: %s\n", v);
        }

Normally, this is a good idea. However, glVersion is already
dereferenced in the printf on the previous line. So, any actual
checking for NULL glVersion should at least come earlier in the
function. On the other hand, returning NULL from
glGetString(GL_VERSION) might be so rare that bothering to guard for
it would be more effort than it's worth.


Bear in mind that printf of a null string wont SIGSEGV.
Only trying to access glVersion[] elements presents -and indeed is - a risk and 
therefore a critical bug (for my usual standards that is).

The critical bug is that glGetString is not allowed to return NULL. Your GL is horrifically broken in that case, and no application will work either.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to