[SOFT386]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Sat, 28 Sep 2013 03:15:48 +0000 (03:15 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Sat, 28 Sep 2013 03:15:48 +0000 (03:15 +0000)
Disallow direct writing to CS. Changing CS must be done with a far jump.

svn path=/branches/ntvdm/; revision=60399

lib/soft386/opcodes.c

index f55ffc6..6e3d91b 100644 (file)
@@ -4210,7 +4210,8 @@ SOFT386_OPCODE_HANDLER(Soft386OpcodeMovLoadSeg)
         return FALSE;
     }
 
-    if (ModRegRm.Register >= SOFT386_NUM_SEG_REGS)
+    if ((ModRegRm.Register >= SOFT386_NUM_SEG_REGS)
+        || ((SOFT386_SEG_REGS)ModRegRm.Register == SOFT386_REG_CS))
     {
         /* Invalid */
         Soft386Exception(State, SOFT386_EXCEPTION_UD);