diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2007-06-23 17:47:57 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-06-18 00:27:10 +0200 |
commit | 352e84795a6ae90930145709e8d539363718cf08 (patch) | |
tree | 9c7f4a74741a2ab15dd16ffb0c54935bbdefc7b7 | |
parent | 3f0f9d5b0caf7a49044a8aa8935e954415141e4a (diff) |
2007-06-23 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/i386/trap.c (user_trap): Read faulting linear address before
using it.
-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) |