]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
bhyveload: use a dirfd to support -h
authorKyle Evans <kevans@FreeBSD.org>
Wed, 3 Jan 2024 22:17:59 +0000 (16:17 -0600)
committerKyle Evans <kevans@FreeBSD.org>
Wed, 3 Jan 2024 22:19:15 +0000 (16:19 -0600)
commit6779d44bd878e3cf4723f7386b11da6508ab5431
treee0b0eae1a0f75549525812a712ca9421e65800b5
parentee7d5ba1b55441476643983d3f70df5ee9ea97c4
bhyveload: use a dirfd to support -h

Don't allow lookups from the loader scripts, which in rare cases may be
in guest control depending on the setup, to leave the specified host
root.  Open the root dir and strictly do RESOLVE_BENEATH lookups from
there.

cb_open() has been restructured a bit to work nicely with this, using
fdopendir() in the directory case and just using the fd we already
opened in the regular file case.

hostbase_open() was split out to provide an obvious place to apply
rights(4) if that's something we care to do.

Reviewed by: allanjude (earlier version), markj
Differential Revision: https://reviews.freebsd.org/D43284
usr.sbin/bhyveload/bhyveload.c