Module Name: src Committed By: joerg Date: Tue Mar 1 18:53:12 UTC 2011
Modified Files: src/sys/kern: kern_exec.c Log Message: Ensure that the LWP private area has a consistent value after exec. To generate a diff of this commit: cvs rdiff -u -r1.308 -r1.309 src/sys/kern/kern_exec.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_exec.c diff -u src/sys/kern/kern_exec.c:1.308 src/sys/kern/kern_exec.c:1.309 --- src/sys/kern/kern_exec.c:1.308 Mon Feb 21 20:23:29 2011 +++ src/sys/kern/kern_exec.c Tue Mar 1 18:53:10 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_exec.c,v 1.308 2011/02/21 20:23:29 pooka Exp $ */ +/* $NetBSD: kern_exec.c,v 1.309 2011/03/01 18:53:10 joerg Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.308 2011/02/21 20:23:29 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.309 2011/03/01 18:53:10 joerg Exp $"); #include "opt_ktrace.h" #include "opt_modular.h" @@ -1075,6 +1075,9 @@ if (pack.ep_esch->es_setregs) (*pack.ep_esch->es_setregs)(l, &pack, (vaddr_t)stack); + /* Provide a consistent LWP private setting */ + (void)lwp_setprivate(l, NULL); + /* map the process's signal trampoline code */ if ((error = exec_sigcode_map(p, pack.ep_esch->es_emul)) != 0) { DPRINTF(("execve: map sigcode failed %d\n", error));