PERFORCE change 59061 for review

David Xu davidxu at FreeBSD.org
Fri Aug 6 21:32:21 PDT 2004


http://perforce.freebsd.org/chv.cgi?CH=59061

Change 59061 by davidxu at davidxu_alona on 2004/08/07 04:31:33

	Buggy debugger tries to change prilivege bits, just ignore it.

Affected files ...

.. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#8 edit

Differences ...

==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#8 (text+ko) ====

@@ -1348,11 +1348,14 @@
 {
 	struct pcb *pcb;
 	struct trapframe *tp;
+	register_t rflags;
 
 	tp = td->td_frame;
-	if (!EFL_SECURE(regs->r_rflags, tp->tf_rflags) ||
-	    !CS_SECURE(regs->r_cs))
+	if (!CS_SECURE(regs->r_cs))
 		return (EINVAL);
+
+	rflags = (regs->r_rflags & PSL_USERCHANGE) |
+	    (tp->tf_rflags & ~PSL_USERCHANGE);
 	tp->tf_r15 = regs->r_r15;
 	tp->tf_r14 = regs->r_r14;
 	tp->tf_r13 = regs->r_r13;
@@ -1370,7 +1373,7 @@
 	tp->tf_rax = regs->r_rax;
 	tp->tf_rip = regs->r_rip;
 	tp->tf_cs = regs->r_cs;
-	tp->tf_rflags = regs->r_rflags;
+	tp->tf_rflags = rflags;
 	tp->tf_rsp = regs->r_rsp;
 	tp->tf_ss = regs->r_ss;
 	pcb = td->td_pcb;


More information about the p4-projects mailing list