[Mesa-dev] [PATCH] draw: (trivial) fix out-of-bounds vector initialization

Brian Paul brianp at vmware.com
Wed May 6 07:26:50 PDT 2015


On 05/06/2015 08:05 AM, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> Was off-by-one. llvm says inserting an element with an index higher than the
> number of elements yields undefined results. Previously such inserts were
> ignored but as of llvm revision 235854 the vector gets replaced with undef,
> causing failures.
> This fixes piglit gl-3.2-layered-rendering-gl-layer, as mentioned in
> https://llvm.org/bugs/show_bug.cgi?id=23424.
>
> Cc: mesa-stable at lists.freedesktop.org
> ---
>   src/gallium/auxiliary/draw/draw_llvm.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
> index 7150611..b9e55af 100644
> --- a/src/gallium/auxiliary/draw/draw_llvm.c
> +++ b/src/gallium/auxiliary/draw/draw_llvm.c
> @@ -2048,7 +2048,7 @@ generate_mask_value(struct draw_gs_llvm_variant *variant,
>
>      num_prims = lp_build_broadcast(gallivm, lp_build_vec_type(gallivm, mask_type),
>                                     variant->num_prims);
> -   for (i = 0; i <= gs_type.length; i++) {
> +   for (i = 0; i < gs_type.length; i++) {
>         LLVMValueRef idx = lp_build_const_int32(gallivm, i);
>         mask_val = LLVMBuildInsertElement(builder, mask_val, idx, idx, "");
>      }
>

Reviewed-by: Brian Paul <brianp at vmware.com>



More information about the mesa-dev mailing list