Sebastian Lackner : krnl386.exe16: Fix incorrect interpretation of SIB byte when parsing x86 opcode.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Nov 7 06:44:36 CST 2014


Module: wine
Branch: master
Commit: 8035f90f3b5b4dab85d1c458d7675aba636ea4b5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8035f90f3b5b4dab85d1c458d7675aba636ea4b5

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Fri Nov  7 05:19:58 2014 +0100

krnl386.exe16: Fix incorrect interpretation of SIB byte when parsing x86 opcode.

---

 dlls/krnl386.exe16/instr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dlls/krnl386.exe16/instr.c b/dlls/krnl386.exe16/instr.c
index 459885d..b44bd55 100644
--- a/dlls/krnl386.exe16/instr.c
+++ b/dlls/krnl386.exe16/instr.c
@@ -194,7 +194,7 @@ static BYTE *INSTR_GetOperandAddr( CONTEXT *context, BYTE *instr,
             GET_VAL( &sib, BYTE );
             rm = sib & 7;
             ss = sib >> 6;
-            switch(sib >> 3)
+            switch((sib >> 3) & 7)
             {
             case 0: index = context->Eax; break;
             case 1: index = context->Ecx; break;




More information about the wine-cvs mailing list