Module Name: src Committed By: riz Date: Mon May 21 15:25:59 UTC 2012
Modified Files: src/distrib/sets/lists/tests [netbsd-6]: mi src/lib/libc/sys [netbsd-6]: _lwp_create.2 src/sys/arch/alpha/alpha [netbsd-6]: machdep.c src/sys/arch/amd64/amd64 [netbsd-6]: machdep.c netbsd32_machdep.c process_machdep.c src/sys/arch/amd64/include [netbsd-6]: mcontext.h src/sys/arch/arm/arm [netbsd-6]: sig_machdep.c src/sys/arch/hppa/hppa [netbsd-6]: hppa_machdep.c src/sys/arch/i386/i386 [netbsd-6]: machdep.c src/sys/arch/m68k/m68k [netbsd-6]: sig_machdep.c src/sys/arch/mips/mips [netbsd-6]: cpu_subr.c netbsd32_machdep.c src/sys/arch/powerpc/powerpc [netbsd-6]: sig_machdep.c src/sys/arch/sh3/sh3 [netbsd-6]: sh3_machdep.c src/sys/arch/sparc/sparc [netbsd-6]: machdep.c src/sys/arch/sparc64/sparc64 [netbsd-6]: machdep.c netbsd32_machdep.c src/sys/arch/vax/vax [netbsd-6]: machdep.c src/sys/compat/netbsd32 [netbsd-6]: netbsd32_lwp.c src/sys/compat/sys [netbsd-6]: ucontext.h src/sys/kern [netbsd-6]: sys_lwp.c src/sys/sys [netbsd-6]: lwp.h ucontext.h src/tests/lib/libc/sys [netbsd-6]: Makefile Added Files: src/tests/lib/libc/sys [netbsd-6]: t_lwp_create.c Log Message: Pull up following revision(s) (requested by martin in ticket #274): sys/arch/amd64/amd64/process_machdep.c: revision 1.20 sys/kern/sys_lwp.c: revision 1.54 sys/arch/sparc64/sparc64/machdep.c: revision 1.267 sys/arch/mips/mips/cpu_subr.c: revision 1.16 sys/arch/vax/vax/machdep.c: revision 1.188 sys/sys/lwp.h: revision 1.161 sys/arch/sparc64/sparc64/netbsd32_machdep.c: revision 1.98 sys/arch/alpha/alpha/machdep.c: revision 1.339 sys/compat/sys/ucontext.h: revision 1.6 sys/arch/hppa/hppa/hppa_machdep.c: revision 1.28 distrib/sets/lists/tests/mi: revision 1.469 sys/arch/powerpc/powerpc/sig_machdep.c: revision 1.42 tests/lib/libc/sys/t_lwp_create.c: revision 1.1 tests/lib/libc/sys/Makefile: revision 1.23 sys/arch/arm/arm/sig_machdep.c: revision 1.42 sys/arch/amd64/include/mcontext.h: revision 1.15 sys/arch/amd64/amd64/machdep.c: revision 1.183 sys/arch/sh3/sh3/sh3_machdep.c: revision 1.99 sys/arch/i386/i386/machdep.c: revision 1.727 sys/compat/netbsd32/netbsd32_lwp.c: revision 1.13 sys/arch/sparc/sparc/machdep.c: revision 1.319 sys/arch/amd64/amd64/netbsd32_machdep.c: revision 1.76 sys/arch/m68k/m68k/sig_machdep.c: revision 1.49 sys/sys/ucontext.h: revision 1.16 sys/arch/mips/mips/netbsd32_machdep.c: revision 1.9 lib/libc/sys/_lwp_create.2: revision 1.5 Calling _lwp_create() with a bogus ucontext could trigger a kernel assertion failure (and thus a crash in DIAGNOSTIC kernels). Independently discovered by YAMAMOTO Takashi and Joel Sing. To avoid this, introduce a cpu_mcontext_validate() function and move all sanity checks from cpu_setmcontext() there. Also untangle the netbsd32 compat mess slightly and add a cpu_mcontext32_validate() cousin there. Add an exhaustive atf test case, based partly on code from Joel Sing. Should finally fix the remaining open part of PR kern/43903. To generate a diff of this commit: cvs rdiff -u -r1.439 -r1.439.2.1 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.4 -r1.4.24.1 src/lib/libc/sys/_lwp_create.2 cvs rdiff -u -r1.337 -r1.337.2.1 src/sys/arch/alpha/alpha/machdep.c cvs rdiff -u -r1.175.2.4 -r1.175.2.5 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.74 -r1.74.10.1 src/sys/arch/amd64/amd64/netbsd32_machdep.c cvs rdiff -u -r1.19 -r1.19.2.1 src/sys/arch/amd64/amd64/process_machdep.c cvs rdiff -u -r1.14 -r1.14.10.1 src/sys/arch/amd64/include/mcontext.h cvs rdiff -u -r1.41 -r1.41.2.1 src/sys/arch/arm/arm/sig_machdep.c cvs rdiff -u -r1.26 -r1.26.2.1 src/sys/arch/hppa/hppa/hppa_machdep.c cvs rdiff -u -r1.717.2.6 -r1.717.2.7 src/sys/arch/i386/i386/machdep.c cvs rdiff -u -r1.47 -r1.47.2.1 src/sys/arch/m68k/m68k/sig_machdep.c cvs rdiff -u -r1.14 -r1.14.8.1 src/sys/arch/mips/mips/cpu_subr.c cvs rdiff -u -r1.7 -r1.7.10.1 src/sys/arch/mips/mips/netbsd32_machdep.c cvs rdiff -u -r1.41 -r1.41.8.1 src/sys/arch/powerpc/powerpc/sig_machdep.c cvs rdiff -u -r1.97 -r1.97.2.1 src/sys/arch/sh3/sh3/sh3_machdep.c cvs rdiff -u -r1.316 -r1.316.2.1 src/sys/arch/sparc/sparc/machdep.c cvs rdiff -u -r1.265 -r1.265.2.1 src/sys/arch/sparc64/sparc64/machdep.c cvs rdiff -u -r1.96 -r1.96.2.1 \ src/sys/arch/sparc64/sparc64/netbsd32_machdep.c cvs rdiff -u -r1.185 -r1.185.2.1 src/sys/arch/vax/vax/machdep.c cvs rdiff -u -r1.12 -r1.12.10.1 src/sys/compat/netbsd32/netbsd32_lwp.c cvs rdiff -u -r1.4 -r1.4.10.1 src/sys/compat/sys/ucontext.h cvs rdiff -u -r1.52 -r1.52.14.1 src/sys/kern/sys_lwp.c cvs rdiff -u -r1.159 -r1.159.2.1 src/sys/sys/lwp.h cvs rdiff -u -r1.13 -r1.13.10.1 src/sys/sys/ucontext.h cvs rdiff -u -r1.20 -r1.20.2.1 src/tests/lib/libc/sys/Makefile cvs rdiff -u -r0 -r1.1.2.2 src/tests/lib/libc/sys/t_lwp_create.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.