From b230d1909a493b92da855274e976b9f5b11baf97 Mon Sep 17 00:00:00 2001 From: June 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(-) (limited to 'client.c') diff --git a/client.c b/client.c index bb2ee1b..4736261 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