| From | David Drysdale <> | Date | Tue, 8 Jul 2014 17:54:24 +0100 | Subject | Re: [PATCH 01/11] fs: add O_BENEATH_ONLY flag to openat(2) |
| |
On Tue, Jul 8, 2014 at 1:03 PM, Christoph Hellwig <hch@infradead.org> wrote: > On Mon, Jun 30, 2014 at 11:28:01AM +0100, David Drysdale wrote: >> 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
|