Before this commit, if a client were to request an unrecognized DRI2
buffer, such as DRI2BufferStencil, then I830DRI2CreateBuffer() allocated
and returned an X-tiled buffer by accident. The problem was that
unrecognized tokens were caught by the default case of a switch statement.

Now, when given unrecognized DRI2 tokens, I830DRI2CreateBuffers() returns
null.

This shouldn't break older Mesa versions, because they never query (via
DRI2GetBuffersWithFormat) for the drawable's DRI2BufferStencil.

CC: Eric Anholt <e...@anholt.net>
CC: Ian Romanick <i...@freedesktop.org>
CC: Kristian Høgsberg <k...@bitplanet.net>
CC: Kenneth Graunke <kenn...@whitecape.org>
Signed-off-by: Chad Versace <c...@chad-versace.us>
---
 src/intel_dri.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/intel_dri.c b/src/intel_dri.c
index 48d0f56..4571d07 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -338,10 +338,20 @@ I830DRI2CreateBuffer(DrawablePtr drawable, unsigned int 
attachment,
                                        hint |= INTEL_CREATE_PIXMAP_TILING_Y;
                                        break;
                                }
-                       default:
+                       case DRI2BufferAccum:
+                       case DRI2BufferBackLeft:
+                       case DRI2BufferBackRight:
+                       case DRI2BufferFakeFrontLeft:
+                       case DRI2BufferFakeFrontRight:
+                       case DRI2BufferFrontLeft:
+                       case DRI2BufferFrontRight:
                                hint |= INTEL_CREATE_PIXMAP_TILING_X;
                                break;
-                       }
+                       default:
+                               free(privates);
+                               free(buffer);
+                               return NULL;
+                        }
                }
 
                pixmap = screen->CreatePixmap(screen,
-- 
1.7.5.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to