diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2016-03-30 00:50:44 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2016-03-30 00:50:44 +0200 |
commit | 695d615225bbd66ffee42f5c073ed45327790512 (patch) | |
tree | 4ed00102d22e394418d7b985dacaf5feda63dbd7 | |
parent | 8a3144f0acb7fd934826ccc478707e77bda097d7 (diff) | |
download | xK-695d615225bbd66ffee42f5c073ed45327790512.tar.gz xK-695d615225bbd66ffee42f5c073ed45327790512.tar.xz xK-695d615225bbd66ffee42f5c073ed45327790512.zip |
ZyklonB, kike: Use pledge(2) in OpenBSD
degesch has something like "stdio wpath cpath inet tty proc exec"
but given that it's user-extensible and very annoying for users to
have it crash, I'm leaving it unrestricted for now.
-rw-r--r-- | kike.c | 6 | ||||
-rw-r--r-- | zyklonb.c | 6 |
2 files changed, 12 insertions, 0 deletions
@@ -4076,6 +4076,12 @@ main (int argc, char *argv[]) else if (!irc_lock_pid_file (&ctx, &e)) exit_fatal ("%s", e->message); +#if OpenBSD >= 201605 + // This won't be as simple once we decide to implement REHASH + if (pledge ("stdio inet dns", NULL)) + exit_fatal ("%s: %s", "pledge", strerror (errno)); +#endif + ctx.polling = true; while (ctx.polling) poller_run (&ctx.poller); @@ -2023,6 +2023,12 @@ main (int argc, char *argv[]) ctx.signal_event.user_data = &ctx; poller_fd_set (&ctx.signal_event, POLLIN); +#if OpenBSD >= 201605 + // cpath is for creating the plugin home directory + if (pledge ("stdio rpath cpath inet proc exec", NULL)) + exit_fatal ("%s: %s", "pledge", strerror (errno)); +#endif + plugin_load_all_from_config (&ctx); if (!parse_config (&ctx, &e) || !irc_connect (&ctx, &e)) |