From: José Fonseca Date: Sun, 25 Apr 2010 14:40:06 +0000 (+0100) Subject: llvmpipe: Fix buffer overflow unswizzling several formats. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5745bcb2dbfcaab53df89125d08689b51b9126ea;p=mesa.git llvmpipe: Fix buffer overflow unswizzling several formats. Array formats without for channels were being advanced as four channels, causing buffer overflows. --- diff --git a/src/gallium/drivers/llvmpipe/lp_tile_soa.py b/src/gallium/drivers/llvmpipe/lp_tile_soa.py index b2f800afd8a..5ab63cbac67 100644 --- a/src/gallium/drivers/llvmpipe/lp_tile_soa.py +++ b/src/gallium/drivers/llvmpipe/lp_tile_soa.py @@ -257,7 +257,7 @@ def emit_tile_pixel_unswizzle_code(format, src_channel): value = 'TILE_PIXEL(src, x, y, %u)' % inv_swizzle[i] value = conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=False) print ' *dst_pixel++ = %s;' % value - else: + elif dst_channel.size: print ' ++dst_pixel;' else: assert False