Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 660696d1 authored by Gleb Natapov's avatar Gleb Natapov
Browse files

KVM: X86 emulator: fix source operand decoding for 8bit mov[zs]x instructions



Source operand for one byte mov[zs]x is decoded incorrectly if it is in
high byte register. Fix that.

Cc: stable@vger.kernel.org
Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
parent d1fa0352
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -4172,6 +4172,10 @@ static int decode_operand(struct x86_emulate_ctxt *ctxt, struct operand *op,
		break;
		break;
	case OpMem8:
	case OpMem8:
		ctxt->memop.bytes = 1;
		ctxt->memop.bytes = 1;
		if (ctxt->memop.type == OP_REG) {
			ctxt->memop.addr.reg = decode_register(ctxt, ctxt->modrm_rm, 1);
			fetch_register_operand(&ctxt->memop);
		}
		goto mem_common;
		goto mem_common;
	case OpMem16:
	case OpMem16:
		ctxt->memop.bytes = 2;
		ctxt->memop.bytes = 2;