radeonsi: increase coords array size for radeon_llvm_emit_prepare_cube_coords
authorMarek Olšák <marek.olsak@amd.com>
Tue, 17 Mar 2015 16:47:17 +0000 (17:47 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 18 Mar 2015 11:04:27 +0000 (12:04 +0100)
radeon_llvm_emit_prepare_cube_coords uses coords[4] in some cases (TXB2 etc.)

Discovered by Coverity. Reported by Ilia Mirkin.

Cc: 10.5 10.4 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
src/gallium/drivers/radeonsi/si_shader.c

index d89e2b4..1690194 100644 (file)
@@ -748,7 +748,7 @@ static void txp_fetch_args(
        const struct tgsi_full_instruction * inst = emit_data->inst;
        LLVMValueRef src_w;
        unsigned chan;
-       LLVMValueRef coords[4];
+       LLVMValueRef coords[5];
 
        emit_data->dst_type = LLVMVectorType(bld_base->base.elem_type, 4);
        src_w = lp_build_emit_fetch(bld_base, emit_data->inst, 0, TGSI_CHAN_W);
index de889ed..4dcf756 100644 (file)
@@ -1572,7 +1572,7 @@ static void tex_fetch_args(
        const struct tgsi_full_instruction * inst = emit_data->inst;
        unsigned opcode = inst->Instruction.Opcode;
        unsigned target = inst->Texture.Texture;
-       LLVMValueRef coords[4];
+       LLVMValueRef coords[5];
        LLVMValueRef address[16];
        int ref_pos;
        unsigned num_coords = tgsi_util_get_texture_coord_dim(target, &ref_pos);