From 746280b1a86475a97496e7a9b21ef8ab80db4fd9 Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Sun, 23 Jan 2011 13:35:54 +0100 Subject: [PATCH] glx: Work around wrong length sent by mesa for glXDestroy{Window,Pixmap} Fixes a regression introduced in ec9c97c6bf70b523bc500bd3adf62176f1bb33a4 X.Org bug#33324 Reported-by: xunx.fang@intel.com Signed-off-by: Julien Cristau --- glx/glxcmds.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glx/glxcmds.c b/glx/glxcmds.c index 3ef567d..5d3f307 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -1356,7 +1356,9 @@ int __glXDisp_DestroyPixmap(__GLXclientState *cl, GLbyte *pc) ClientPtr client = cl->client; xGLXDestroyPixmapReq *req = (xGLXDestroyPixmapReq *) pc; - REQUEST_SIZE_MATCH(xGLXDestroyPixmapReq); + /* should be REQUEST_SIZE_MATCH, but mesa's glXDestroyPixmap sets length to + * 3 instead of 2 */ + REQUEST_AT_LEAST_SIZE(xGLXDestroyPixmapReq); return DoDestroyDrawable(cl, req->glxpixmap, GLX_DRAWABLE_PIXMAP); } @@ -1563,7 +1565,8 @@ int __glXDisp_DestroyWindow(__GLXclientState *cl, GLbyte *pc) ClientPtr client = cl->client; xGLXDestroyWindowReq *req = (xGLXDestroyWindowReq *) pc; - REQUEST_SIZE_MATCH(xGLXDestroyWindowReq); + /* mesa's glXDestroyWindow sets length = 3 instead of 2 */ + REQUEST_AT_LEAST_SIZE(xGLXDestroyWindowReq); return DoDestroyDrawable(cl, req->glxwindow, GLX_DRAWABLE_WINDOW); } -- 1.7.2.3