ARB prog parser: Prevent NULL ptr deref for KIL instruction

The KIL instruction doesn't have a destination register, so
dereferencing dst in asm_instruction_ctor would cause a segfault.
This commit is contained in:
Ian Romanick
2009-07-30 09:41:35 -07:00
parent 600710907c
commit 17534ab88c
2 changed files with 18 additions and 2 deletions

View File

@@ -1879,7 +1879,15 @@ asm_instruction_ctor(gl_inst_opcode op,
if (inst) {
_mesa_init_instructions(& inst->Base, 1);
inst->Base.Opcode = op;
inst->Base.DstReg = *dst;
/* In the core ARB extensions only the KIL instruction doesn't have a
* destination register.
*/
if (dst == NULL) {
init_dst_reg(& inst->Base.DstReg);
} else {
inst->Base.DstReg = *dst;
}
inst->Base.SrcReg[0] = src0->Base;
inst->SrcReg[0] = *src0;