From 03781457a91edcb9364e720d89e71a4e6afb0597 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Fri, 24 Sep 2021 19:42:10 -0400 Subject: OpenBSD: pledge(2) client --- client.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/client.c b/client.c index a16c682..8e5d2f2 100644 --- a/client.c +++ b/client.c @@ -681,6 +681,7 @@ static void readInput(void) { } int main(int argc, char *argv[]) { + int error; const char *sockPath = DefaultSockPath; int opt; while (0 < (opt = getopt(argc, argv, "hs:"))) { @@ -695,6 +696,12 @@ int main(int argc, char *argv[]) { } curse(); + +#ifdef __OpenBSD__ + error = pledge("stdio tty unix", NULL); + if (error) err(EX_OSERR, "pledge"); +#endif + modeHelp(); readInput(); @@ -703,9 +710,14 @@ int main(int argc, char *argv[]) { struct sockaddr_un addr = { .sun_family = AF_LOCAL }; snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", sockPath); - int error = connect(client, (struct sockaddr *)&addr, SUN_LEN(&addr)); + error = connect(client, (struct sockaddr *)&addr, SUN_LEN(&addr)); if (error) err(EX_NOINPUT, "%s", sockPath); +#ifdef __OpenBSD__ + error = pledge("stdio tty", NULL); + if (error) err(EX_OSERR, "pledge"); +#endif + #ifdef __FreeBSD__ error = cap_enter(); if (error) err(EX_OSERR, "cap_enter"); -- cgit 1.4.1