diff --git a/sys/compat/linux/linux_util.c b/sys/compat/linux/linux_util.c --- a/sys/compat/linux/linux_util.c +++ b/sys/compat/linux/linux_util.c @@ -79,22 +79,14 @@ linux_pwd_onexec(struct thread *td) { struct nameidata nd; - struct pwd *pwd; int error; NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, linux_emul_path); error = namei(&nd); if (error != 0) { - /* - * Do not bother if we are in chroot or jail. - */ - pwd = pwd_hold(td); - if (pwd->pwd_rdir != rootvnode) { - pwd_drop(pwd); - return (0); - } - pwd_drop(pwd); - return (error); + /* Do not prevent execution if altroot is non-existent. */ + pwd_altroot(td, NULL); + return (0); } NDFREE_PNBUF(&nd); pwd_altroot(td, nd.ni_vp);