[Mesa-dev] [PATCH] r600g: Prevent invalid op overflows in release builds.

Vinson Lee vlee at freedesktop.org
Sun Nov 3 15:05:15 PST 2013


Fixes "Overflowed return value" defects reported by Coverity.

Signed-off-by: Vinson Lee <vlee at freedesktop.org>
---
 src/gallium/drivers/r600/r600_isa.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/gallium/drivers/r600/r600_isa.h b/src/gallium/drivers/r600/r600_isa.h
index c6bb869..5b9c3d0 100644
--- a/src/gallium/drivers/r600/r600_isa.h
+++ b/src/gallium/drivers/r600/r600_isa.h
@@ -1210,6 +1210,9 @@ r600_isa_alu_by_opcode(struct r600_isa* isa, unsigned opcode, unsigned is_op3) {
 		op = isa->alu_op2_map[opcode];
 	}
 	assert(op);
+	if (!op) {
+		return 0;
+	}
 	return op - 1;
 }
 
@@ -1219,6 +1222,9 @@ r600_isa_fetch_by_opcode(struct r600_isa* isa, unsigned opcode) {
 	assert(isa->fetch_map);
 	op = isa->fetch_map[opcode];
 	assert(op);
+	if (!op) {
+		return 0;
+	}
 	return op - 1;
 }
 
@@ -1230,6 +1236,9 @@ r600_isa_cf_by_opcode(struct r600_isa* isa, unsigned opcode, unsigned is_alu) {
 	 * CF opcodes (they use different encoding in hw) */
 	op = isa->cf_map[is_alu ? opcode + 0x80 : opcode];
 	assert(op);
+	if (!op) {
+		return 0;
+	}
 	return op - 1;
 }
 
-- 
1.8.3.1



More information about the mesa-dev mailing list