浏览代码

KVM: x86 emulator: disable writeback on lmsw

The recent changes allowing memory operands with lmsw and smsw left
lmsw with writeback enabled.  Since lmsw has no oridinary destination
operand, the dst pointer was not initialized, resulting in an oops.

Close the hole by disabling writeback for lmsw.

Signed-off-by: Avi Kivity <avi@qumranet.com>
Avi Kivity 17 年之前
父节点
当前提交
dc7457ea52
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      arch/x86/kvm/x86_emulate.c

+ 1 - 0
arch/x86/kvm/x86_emulate.c

@@ -1761,6 +1761,7 @@ twobyte_insn:
 		case 6: /* lmsw */
 		case 6: /* lmsw */
 			realmode_lmsw(ctxt->vcpu, (u16)c->src.val,
 			realmode_lmsw(ctxt->vcpu, (u16)c->src.val,
 				      &ctxt->eflags);
 				      &ctxt->eflags);
+			c->dst.type = OP_NONE;
 			break;
 			break;
 		case 7: /* invlpg*/
 		case 7: /* invlpg*/
 			emulate_invlpg(ctxt->vcpu, memop);
 			emulate_invlpg(ctxt->vcpu, memop);