From: Tiziano Bacocco Date: Tue, 30 Jul 2013 20:04:49 +0000 (+0200) Subject: nvc0/ir: fix use after free in texture barrier insertion pass X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7086636358b611a2bb124253e1fe870107e1cecb;p=mesa.git nvc0/ir: fix use after free in texture barrier insertion pass Fixes crash with Amnesia: The Dark Descent. Cc: "9.2 and 9.1" --- diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp index 251e49b8f41..1832e1acd52 100644 --- a/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp +++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp @@ -443,6 +443,7 @@ NVC0LegalizePostRA::insertTextureBarriers(Function *fn) if (i->op == OP_TEXBAR) { if (i->subOp >= max) { delete_Instruction(prog, i); + i = NULL; } else { max = i->subOp; if (prev && prev->op == OP_TEXBAR && prev->subOp >= max) { @@ -454,7 +455,7 @@ NVC0LegalizePostRA::insertTextureBarriers(Function *fn) if (isTextureOp(i->op)) { max++; } - if (!i->isNop()) + if (i && !i->isNop()) prev = i; } }