summary refs log tree commit diff
path: root/url.c
diff options
context:
space:
mode:
authorKlemens Nanni <klemens@posteo.de>2021-06-29 03:21:42 +0200
committerJune McEnroe <june@causal.agency>2021-07-13 15:16:22 -0400
commit7793ca36bb5aadee1a6f5e2708ec2ff9917aba6b (patch)
treef055e292c4f7215f718975b362739ed8f893e73c /url.c
parentSave invited channel for /join (diff)
downloadcatgirl-7793ca36bb5aadee1a6f5e2708ec2ff9917aba6b.tar.gz
catgirl-7793ca36bb5aadee1a6f5e2708ec2ff9917aba6b.zip
OpenBSD: unveil logs regardless of restrict mode
Simplify logic and decouple the two features such that the code gets
even more self-ducumenting.

Previously `catgirl -R -l' would never unveil and therefore "proc exec"
could execute arbitrary paths without "rpath" as is usual unveil/pledge
semantic.

Now that `catgirl -l' alone triggers unveil(2), previous "proc exec"
alone is not enough since the first unveil() hides everything else from
filesystem;  unveil all of root executable-only in order to restore
non-restrict mode's visibility.

This leaves yields distinct cases wrt. filesystem visibility
(hoisted save file functionality excluded):

1. restrict on,  log off:  no access
2. restrict on,  log on :  logdir write/create
3. restrict off, log off:  all exec-only
4. restrict off, log on :  logdir write/create, all else exec-only

In the first case `unveil("/", "")' could be used but with no benefit as
the later lack of "rpath wpath cpath", i.e. filesystem access is revoked
entirely by pledge alone already.

Practically, this does not change functionality but improves correctness
and readability.
Diffstat (limited to 'url.c')
0 files changed, 0 insertions, 0 deletions