mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 18:08:40 +02:00
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:
parent
600710907c
commit
17534ab88c
2 changed files with 18 additions and 2 deletions
|
|
@ -4748,7 +4748,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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue