@Sir Richard,

While fixing trunk breakage, I also fixed another bug in
KiTrap0DHandler, which was always only checking one prefix.
I attached the patch.

Regards,
Timo

Index: traphdlr.c
===================================================================
--- traphdlr.c  (Revision 45057)
+++ traphdlr.c  (Arbeitskopie)
@@ -1103,19 +1103,23 @@
                 /* Skip prefix instructions */
                 for (j = 0; j < sizeof(KiTrapPrefixTable); j++)
                 {
-                    /* Is this NOT a prefix instruction? */
-                    if (Instructions[i] != KiTrapPrefixTable[j])
+                    /* Is this a prefix instruction? */
+                    if (Instructions[i] == KiTrapPrefixTable[j])
                     {
-                        /* We can go ahead and handle the fault now */
-                        Instruction = Instructions[i];
+                        /* Stop looking */
                         break;
                     }
                 }
                 
-                /* Do we need to keep looking? */
-                if (Instruction) break;
+                /* Is this NOT any prefix instruction? */
+                if (Instructions[i] != KiTrapPrefixTable[j])
+                {
+                    /* We can go ahead and handle the fault now */
+                    Instruction = Instructions[i];
+                    break;
+                }
             }
-                
+            
             /* If all we found was prefixes, then this instruction is too long 
*/
             if (!Instruction)
             {
_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to