summaryrefslogtreecommitdiffstats
path: root/usr.sbin/inetd
diff options
context:
space:
mode:
authorbenno <benno@openbsd.org>2017-10-04 18:08:26 +0000
committerbenno <benno@openbsd.org>2017-10-04 18:08:26 +0000
commit942ef7986633d61d9e952513f7c1a612d81675e2 (patch)
tree926d211defc1a094f857127fc4f9c2ce5573b072 /usr.sbin/inetd
parentIntroduce reference counting for tasks in iwm(4). (diff)
downloadwireguard-openbsd-942ef7986633d61d9e952513f7c1a612d81675e2.tar.xz
wireguard-openbsd-942ef7986633d61d9e952513f7c1a612d81675e2.zip
inetd needs cpath pledge to unlink unix socket at program termination.
From Anthony Coulter - thanks! ok jca@
Diffstat (limited to 'usr.sbin/inetd')
-rw-r--r--usr.sbin/inetd/inetd.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c
index 8879121105b..2e3e5b174b6 100644
--- a/usr.sbin/inetd/inetd.c
+++ b/usr.sbin/inetd/inetd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: inetd.c,v 1.154 2016/08/25 05:23:19 tedu Exp $ */
+/* $OpenBSD: inetd.c,v 1.155 2017/10/04 18:08:26 benno Exp $ */
/*
* Copyright (c) 1983,1991 The Regents of the University of California.
@@ -1763,8 +1763,13 @@ spawn(int ctrl, short events, void *xsep)
return;
}
- if (pledge("stdio rpath getpw inet proc exec id", NULL) == -1)
- err(1, "pledge");
+ if (sep->se_family == AF_UNIX) {
+ if (pledge("stdio rpath cpath getpw inet proc exec id", NULL) == -1)
+ err(1, "pledge");
+ } else {
+ if (pledge("stdio rpath getpw inet proc exec id", NULL) == -1)
+ err(1, "pledge");
+ }
if (pid && sep->se_wait) {
sep->se_wait = pid;