Apply by doing:
cd /usr/src
patch -p0 < 012_copy.patch
And then rebuild your kernel.
Index: sys/arch/amd64/amd64/copy.S
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/copy.S,v
retrieving revision 1.1
retrieving revision 1.1.6.1
diff -u -p -U20 -r1.1 -r1.1.6.1
--- sys/arch/amd64/amd64/copy.S 28 Jan 2004 01:39:38 -0000 1.1
+++ sys/arch/amd64/amd64/copy.S 16 Mar 2005 23:49:00 -0000 1.1.6.1
@@ -190,40 +190,41 @@ NENTRY(copy_efault)
movq $EFAULT,%rax
NENTRY(copy_fault)
movq CPUVAR(CURPCB),%rdx
popq PCB_ONFAULT(%rdx)
ret
ENTRY(copyoutstr)
xchgq %rdi,%rsi
movq %rdx,%r8
movq %rcx,%r9
5: movq CPUVAR(CURPCB),%rax
leaq _C_LABEL(copystr_fault)(%rip),%r11
movq %r11,PCB_ONFAULT(%rax)
/*
* Get min(%rdx, VM_MAXUSER_ADDRESS-%rdi).
*/
movq $VM_MAXUSER_ADDRESS,%rax
subq %rdi,%rax
+ jc _C_LABEL(copystr_efault)
cmpq %rdx,%rax
jae 1f
movq %rax,%rdx
movq %rax,%r8
1: incq %rdx
cld
1: decq %rdx
jz 2f
lodsb
stosb
testb %al,%al
jnz 1b
/* Success -- 0 byte reached. */
decq %rdx
xorq %rax,%rax
jmp copystr_return
@@ -231,40 +232,41 @@ ENTRY(copyoutstr)
movq $VM_MAXUSER_ADDRESS,%r11
cmpq %r11,%rdi
jae _C_LABEL(copystr_efault)
movq $ENAMETOOLONG,%rax
jmp copystr_return
ENTRY(copyinstr)
xchgq %rdi,%rsi
movq %rdx,%r8
movq %rcx,%r9
movq CPUVAR(CURPCB),%rcx
leaq _C_LABEL(copystr_fault)(%rip),%r11
movq %r11,PCB_ONFAULT(%rcx)
/*
* Get min(%rdx, VM_MAXUSER_ADDRESS-%rsi).
*/
movq $VM_MAXUSER_ADDRESS,%rax
subq %rsi,%rax
+ jc _C_LABEL(copystr_efault)
cmpq %rdx,%rax
jae 1f
movq %rax,%rdx
movq %rax,%r8
1: incq %rdx
cld
1: decq %rdx
jz 2f
lodsb
stosb
testb %al,%al
jnz 1b
/* Success -- 0 byte reached. */
decq %rdx
xorq %rax,%rax
jmp copystr_return