diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | i386/i386/trap.c | 2 |
2 files changed, 6 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2007-06-23 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * i386/i386/trap.c (user_trap): Read faulting linear address before + using it. + 2007-06-02 Thomas Schwinge <tschwinge@gnu.org> * Makerules.mig.am: New file, factored out of code of... diff --git a/i386/i386/trap.c b/i386/i386/trap.c index 3b51b1a..ebb327c 100644 --- a/i386/i386/trap.c +++ b/i386/i386/trap.c @@ -504,13 +504,13 @@ printf("user trap %d error %d sub %08x\n", type, code, subcode); break; case T_PAGE_FAULT: + subcode = regs->cr2; #if 0 printf("user page fault at linear address %08x\n", subcode); dump_ss (regs); #endif assert(subcode < LINEAR_MIN_KERNEL_ADDRESS); - subcode = regs->cr2; (void) vm_fault(thread->task->map, trunc_page((vm_offset_t)subcode), (regs->err & T_PF_WRITE) |