diff options
author | Klemens Nanni <klemens@posteo.de> | 2021-06-19 14:57:00 +0000 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-06-20 20:21:00 -0400 |
commit | 3a38e36717ff24a3c028c1c7cfe477d9fec95498 (patch) | |
tree | a22ab9715396e65e95c332de4e2c58814ad9ab4e /chat.c | |
parent | Handle "\1ACTION\1" empty actions (diff) | |
download | test-3a38e36717ff24a3c028c1c7cfe477d9fec95498.tar.gz test-3a38e36717ff24a3c028c1c7cfe477d9fec95498.zip |
OpenBSD: Only unveil used directories
dataMkdir() already picked the appropiate directory so make it return that such that unveilData() can go as only that one directory needs unveiling.
Diffstat (limited to '')
-rw-r--r-- | chat.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/chat.c b/chat.c index 8816068..479ec94 100644 --- a/chat.c +++ b/chat.c @@ -127,16 +127,6 @@ static void parseHash(char *str) { if (*str) hashBound = strtoul(&str[1], NULL, 0); } -#ifdef __OpenBSD__ -static void unveilData(const char *name) { - const char *dirs = NULL; - for (const char *path; NULL != (path = dataPath(&dirs, name));) { - int error = unveil(path, "wc"); - if (error && errno != ENOENT) err(EX_CANTCREAT, "%s", path); - } -} -#endif - static volatile sig_atomic_t signals[NSIG]; static void signalHandler(int signal) { signals[signal] = 1; @@ -287,8 +277,9 @@ int main(int argc, char *argv[]) { #ifdef __OpenBSD__ if (self.restricted && logEnable) { - dataMkdir(""); - unveilData(""); + const char *logdir = dataMkdir(""); + int error = unveil(logdir, "wc"); + if (error) err(EX_OSERR, "unveil"); } char promises[64] = "stdio tty"; |