Apply by doing:
cd /usr/src
patch -p0 < 011_locore.patch
And then rebuild your kernel.
Index: sys/arch/i386/i386/locore.s
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/locore.s,v
retrieving revision 1.80
retrieving revision 1.80.2.1
diff -u -p -U20 -r1.80 -r1.80.2.1
--- sys/arch/i386/i386/locore.s 20 Jul 2004 20:16:44 -0000 1.80
+++ sys/arch/i386/i386/locore.s 27 Feb 2005 00:57:02 -0000 1.80.2.1
@@ -1225,40 +1225,42 @@ ENTRY(copyoutstr)
#endif /* I386_CPU */
#if defined(I486_CPU) || defined(I586_CPU) || defined(I686_CPU)
5: GET_CURPCB(%eax)
movl $_C_LABEL(copystr_fault),PCB_ONFAULT(%eax)
/*
* Get min(%edx, VM_MAXUSER_ADDRESS-%edi).
*/
movl $VM_MAXUSER_ADDRESS,%eax
subl %edi,%eax
cmpl %edx,%eax
jae 1f
movl %eax,%edx
movl %eax,20+FPADD(%esp)
1: incl %edx
cld
1: decl %edx
jz 2f
+ cmpl $VM_MAXUSER_ADDRESS,%edi
+ jae _C_LABEL(copystr_fault)
lodsb
stosb
testb %al,%al
jnz 1b
/* Success -- 0 byte reached. */
decl %edx
xorl %eax,%eax
jmp copystr_return
2: /* edx is zero -- return EFAULT or ENAMETOOLONG. */
cmpl $VM_MAXUSER_ADDRESS,%edi
jae _C_LABEL(copystr_fault)
movl $ENAMETOOLONG,%eax
jmp copystr_return
#endif /* I486_CPU || I586_CPU || I686_CPU */
/*
* copyinstr(caddr_t from, caddr_t to, size_t maxlen, size_t *lencopied);
* Copy a NUL-terminated string, at most maxlen characters long, from the