patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
48 lines
1.5 KiB
Diff
48 lines
1.5 KiB
Diff
--- releng/8.1/sys/amd64/amd64/trap.c 2012/06/18 20:19:07 237240
|
|
+++ releng/8.1/sys/amd64/amd64/trap.c 2012/06/18 20:48:21 237241
|
|
@@ -972,23 +972,6 @@
|
|
ksi.ksi_code = TRAP_TRACE;
|
|
ksi.ksi_addr = (void *)frame->tf_rip;
|
|
trapsignal(td, &ksi);
|
|
-
|
|
- /*
|
|
- * If the user-supplied value of %rip is not a canonical
|
|
- * address, then some CPUs will trigger a ring 0 #GP during
|
|
- * the sysret instruction. However, the fault handler would
|
|
- * execute with the user's %gs and %rsp in ring 0 which would
|
|
- * not be safe. Instead, preemptively kill the thread with a
|
|
- * SIGBUS.
|
|
- */
|
|
- if (td->td_frame->tf_rip >= VM_MAXUSER_ADDRESS) {
|
|
- ksiginfo_init_trap(&ksi);
|
|
- ksi.ksi_signo = SIGBUS;
|
|
- ksi.ksi_code = BUS_OBJERR;
|
|
- ksi.ksi_trapno = T_PROTFLT;
|
|
- ksi.ksi_addr = (void *)td->td_frame->tf_rip;
|
|
- trapsignal(td, &ksi);
|
|
- }
|
|
}
|
|
|
|
/*
|
|
@@ -1027,4 +1010,21 @@
|
|
STOPEVENT(p, S_SCX, sa.code);
|
|
|
|
PTRACESTOP_SC(p, td, S_PT_SCX);
|
|
+
|
|
+ /*
|
|
+ * If the user-supplied value of %rip is not a canonical
|
|
+ * address, then some CPUs will trigger a ring 0 #GP during
|
|
+ * the sysret instruction. However, the fault handler would
|
|
+ * execute with the user's %gs and %rsp in ring 0 which would
|
|
+ * not be safe. Instead, preemptively kill the thread with a
|
|
+ * SIGBUS.
|
|
+ */
|
|
+ if (td->td_frame->tf_rip >= VM_MAXUSER_ADDRESS) {
|
|
+ ksiginfo_init_trap(&ksi);
|
|
+ ksi.ksi_signo = SIGBUS;
|
|
+ ksi.ksi_code = BUS_OBJERR;
|
|
+ ksi.ksi_trapno = T_PROTFLT;
|
|
+ ksi.ksi_addr = (void *)td->td_frame->tf_rip;
|
|
+ trapsignal(td, &ksi);
|
|
+ }
|
|
}
|