Mesa (master): glx: Generate GLXBadDrawable when drawable is zero

Ian Romanick idr at kemper.freedesktop.org
Wed Aug 14 00:53:48 UTC 2013


Module: Mesa
Branch: master
Commit: d5aee174b88878e6d47dc1fadd3935f535fd85f0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d5aee174b88878e6d47dc1fadd3935f535fd85f0

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Thu Aug  8 18:17:24 2013 -0700

glx: Generate GLXBadDrawable when drawable is zero

Fixes piglit glx-query-drawable-GLXBadDrawable.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Chad Versace <chad.versace at linux.intel.com>
Cc: "9.2" <mesa-stable at lists.freedesktop.org>

---

 src/glx/glx_pbuffer.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c
index f11305a..183fbaa 100644
--- a/src/glx/glx_pbuffer.c
+++ b/src/glx/glx_pbuffer.c
@@ -40,9 +40,10 @@
 #ifdef GLX_USE_APPLEGL
 #include <pthread.h>
 #include "apple_glx_drawable.h"
-#include "glx_error.h"
 #endif
 
+#include "glx_error.h"
+
 #define WARN_ONCE_GLX_1_3(a, b) {		\
 		static int warned=1;		\
 		if(warned) {			\
@@ -279,7 +280,16 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable,
    unsigned int num_attributes;
    GLboolean use_glx_1_3;
 
-   if ((dpy == NULL) || (drawable == 0)) {
+   if (dpy == NULL)
+      return 0;
+
+   /* Page 38 (page 52 of the PDF) of glxencode1.3.pdf says:
+    *
+    *     "If drawable is not a valid GLX drawable, a GLXBadDrawable error is
+    *     generated."
+    */
+   if (drawable == 0) {
+      __glXSendError(dpy, GLXBadDrawable, 0, X_GLXGetDrawableAttributes, false);
       return 0;
    }
 




More information about the mesa-commit mailing list