From 9417ad6cd5cefe578eec1b5649c1cfaa50bddb92 Mon Sep 17 00:00:00 2001 From: Nguyen Anh Quynh Date: Thu, 5 Jun 2014 17:03:52 +0700 Subject: [PATCH] x86: printDstIdx() should only print segment in non-64bit mode. bug reported by Filipe Cabecinhas (@filcab) --- arch/X86/X86IntelInstPrinter.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/X86/X86IntelInstPrinter.c b/arch/X86/X86IntelInstPrinter.c index 411c1b18..71feee7f 100644 --- a/arch/X86/X86IntelInstPrinter.c +++ b/arch/X86/X86IntelInstPrinter.c @@ -229,7 +229,10 @@ static void printSrcIdx(MCInst *MI, unsigned Op, SStream *O) static void printDstIdx(MCInst *MI, unsigned Op, SStream *O) { // DI accesses are always ES-based. - SStream_concat(O, "es:["); + if (MI->csh->mode != CS_MODE_64) + SStream_concat(O, "es:["); + else + SStream_concat(O, "["); printOperand(MI, Op, O); SStream_concat(O, "]"); }