git: 99fa799a19ab - main - linux_pwd_onexec: do not abort image activation if emul path does not exist
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 22 Feb 2024 01:32:06 UTC
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=99fa799a19abeb70b1034f65407c276b64709bdc commit 99fa799a19abeb70b1034f65407c276b64709bdc Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2024-02-10 05:02:18 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2024-02-22 01:31:39 +0000 linux_pwd_onexec: do not abort image activation if emul path does not exist Instead clear the altroot, if any. Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D43833 --- sys/compat/linux/linux_util.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/sys/compat/linux/linux_util.c b/sys/compat/linux/linux_util.c index 020eb57ea68e..e0c010cb5e48 100644 --- a/sys/compat/linux/linux_util.c +++ b/sys/compat/linux/linux_util.c @@ -79,22 +79,14 @@ int 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);