From bfcea5b8ab44a12f9077019bea16cbdae79e928d Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sat, 14 Sep 2019 13:33:36 +0000 Subject: [PATCH] MFC r352017: In do_execve(), use shared text vnode lock consistently. --- sys/kern/kern_exec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 1591d34418c..7a125fc9893 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -528,7 +528,7 @@ do_execve(struct thread *td, struct image_args *args, struct mac *mac_p) euip = uifind(attr.va_uid); change_euid(imgp->newcred, euip); } - vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY); + vn_lock(imgp->vp, LK_SHARED | LK_RETRY); if (attr.va_mode & S_ISGID) change_egid(imgp->newcred, attr.va_gid); /* @@ -557,7 +557,7 @@ do_execve(struct thread *td, struct image_args *args, struct mac *mac_p) oldcred->cr_svgid != oldcred->cr_gid) { VOP_UNLOCK(imgp->vp, 0); imgp->newcred = crdup(oldcred); - vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY); + vn_lock(imgp->vp, LK_SHARED | LK_RETRY); change_svuid(imgp->newcred, imgp->newcred->cr_uid); change_svgid(imgp->newcred, imgp->newcred->cr_gid); } @@ -574,7 +574,7 @@ do_execve(struct thread *td, struct image_args *args, struct mac *mac_p) if (vn_fullpath(td, imgp->vp, &imgp->execpath, &imgp->freepath) != 0) imgp->execpath = args->fname; - vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY); + vn_lock(imgp->vp, LK_SHARED | LK_RETRY); } /* -- 2.45.0