mesa: Add assert to check number of vector elements
authorJan Vesely <jan.vesely@rutgers.edu>
Wed, 14 Jan 2015 21:12:06 +0000 (16:12 -0500)
committerJosé Fonseca <jfonseca@vmware.com>
Wed, 21 Jan 2015 14:06:02 +0000 (14:06 +0000)
The below code crashes when vector_elements <= 0
Fixes Warray-bounds warnings

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/mesa/program/ir_to_mesa.cpp
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index ce3af3120830dbf31beee1f206c84988140d1ddc..038f66b6d9ee2c6969fa7e701bd3f48714f4f8e7 100644 (file)
@@ -1449,6 +1449,7 @@ ir_to_mesa_visitor::visit(ir_swizzle *ir)
    ir->val->accept(this);
    src = this->result;
    assert(src.file != PROGRAM_UNDEFINED);
+   assert(ir->type->vector_elements > 0);
 
    for (i = 0; i < 4; i++) {
       if (i < ir->type->vector_elements) {
index 98ab2c149f55e9d8c6ddf029ba2a7c7fa9a17114..2ed7a3bf9b8552e8cb37ee508ae826a06d68a39c 100644 (file)
@@ -2051,6 +2051,7 @@ glsl_to_tgsi_visitor::visit(ir_swizzle *ir)
    ir->val->accept(this);
    src = this->result;
    assert(src.file != PROGRAM_UNDEFINED);
+   assert(ir->type->vector_elements > 0);
 
    for (i = 0; i < 4; i++) {
       if (i < ir->type->vector_elements) {