diff options
author | June McEnroe <june@causal.agency> | 2021-09-26 12:00:20 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-09-26 12:00:20 -0400 |
commit | a70617001b96579340f5f48e4c48069cc5aecd59 (patch) | |
tree | d022cdc4fdf177a3bd139b2247a0f1c4c8d6257e | |
parent | Draw foundations in reverse order (diff) | |
download | play-a70617001b96579340f5f48e4c48069cc5aecd59.tar.gz play-a70617001b96579340f5f48e4c48069cc5aecd59.zip |
OpenBSD: pledge(2) and unveil(2)
Diffstat (limited to '')
-rw-r--r-- | play.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/play.c b/play.c index 0400b85..37e1445 100644 --- a/play.c +++ b/play.c @@ -295,10 +295,18 @@ int main(int argc, char *argv[]) { curse(); atexit(info); +#ifdef __OpenBSD__ + int error = unveil(".", "rwc"); + if (error) err(EX_OSERR, "unveil"); + + error = pledge("stdio tty rpath wpath cpath flock", NULL); + if (error) err(EX_OSERR, "pledge"); +#endif + const struct Game *game = menu(); if (!game) return 0; erase(); -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__OpenBSD__) setproctitle("%s", game->name); #endif @@ -308,6 +316,11 @@ int main(int argc, char *argv[]) { snprintf(buf, sizeof(buf), "%s.weekly", game->name); FILE *weekly = scoresOpen(buf); +#ifdef __OpenBSD__ + error = pledge("stdio tty flock", NULL); + if (error) err(EX_OSERR, "pledge"); +#endif + #ifdef __FreeBSD__ int error = cap_enter(); if (error) err(EX_OSERR, "cap_enter"); |