On Tue, Jul 8, 2014 at 1:03 PM, Christoph Hellwig [off-list ref] wrote:
On Mon, Jun 30, 2014 at 11:28:01AM +0100, David Drysdale wrote:
quoted
Add a new O_BENEATH_ONLY flag for openat(2) which restricts the
provided path, rejecting (with -EACCES) paths that are not beneath
the provided dfd. In particular, reject:
- paths that contain .. components
- paths that begin with /
- symlinks that have paths as above.
How is this implemented in FreeBSD? I can't find any references to
O_BENEATH_ONLY except for your patchset.
FreeBSD have the relative-only behaviour for openat() relative to a
Capsicum capability dfd [1], and for a process in capability-mode [2],
but they don't have the O_BENEATH_ONLY as a separately-accessible
openat() flag. However, it seemed like a more widely useful idea so
separating it out was suggested.
[1] http://fxr.watson.org/fxr/source/kern/vfs_lookup.c?v=FREEBSD10#L238
[2] http://fxr.watson.org/fxr/source/kern/vfs_lookup.c?v=FREEBSD10#L171