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