summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_exec.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2009-07-31 13:40:06 +0000
committerjhb <jhb@FreeBSD.org>2009-07-31 13:40:06 +0000
commit03d158678f1be45d0a053a2a17d0882d192ad011 (patch)
tree3c0ee46bb65f1cead854a069eba0dc7df6fddee0 /sys/kern/kern_exec.c
parentee695c0b4b51fdb522a1706339d3476b2cbe0982 (diff)
downloadFreeBSD-src-03d158678f1be45d0a053a2a17d0882d192ad011.zip
FreeBSD-src-03d158678f1be45d0a053a2a17d0882d192ad011.tar.gz
Fix some LORs between vnode locks and filedescriptor table locks.
- Don't grab the filedesc lock just to read fd_cmask. - Drop vnode locks earlier when mounting the root filesystem and before sanitizing stdin/out/err file descriptors during execve(). Submitted by: kib Approved by: re (rwatson) MFC after: 1 week
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r--sys/kern/kern_exec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index 663ab64..e770d07 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -673,8 +673,8 @@ interpret:
* allocate memory, so temporarily drop the process lock.
*/
PROC_UNLOCK(p);
- setugidsafety(td);
VOP_UNLOCK(imgp->vp, 0);
+ setugidsafety(td);
error = fdcheckstd(td);
vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY);
if (error != 0)
OpenPOWER on IntegriCloud