summaryrefslogtreecommitdiffstats
path: root/src/privsep-bsd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2020-09-24 03:49:30 +0100
committerRoy Marples <roy@marples.name>2020-09-24 03:49:30 +0100
commitcce22f81eec70c266071d5d3cfdf3931df203e59 (patch)
tree369a22cb6bb7fbaf09dbdda0b0b881232508daee /src/privsep-bsd.c
parentec4013c25f1d3fea81fff0b8410dc75a4c7eaa30 (diff)
downloaddhcpcd-cce22f81eec70c266071d5d3cfdf3931df203e59.tar.xz
FreeBSD: Anticipate SIOCGIFDATA not working in Capsicum
Diffstat (limited to 'src/privsep-bsd.c')
-rw-r--r--src/privsep-bsd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/privsep-bsd.c b/src/privsep-bsd.c
index 2dc1d749..c9e31610 100644
--- a/src/privsep-bsd.c
+++ b/src/privsep-bsd.c
@@ -118,7 +118,7 @@ ps_root_doroute(void *data, size_t len)
return err;
}
-#ifdef HAVE_PLEDGE
+#if defined(HAVE_CAPSICUM) || defined(HAVE_PLEDGE)
static ssize_t
ps_root_doindirectioctl(unsigned long req, void *data, size_t len)
{
@@ -139,7 +139,9 @@ ps_root_doindirectioctl(unsigned long req, void *data, size_t len)
return ps_root_doioctldom(PF_INET, req, &ifr, sizeof(ifr));
}
+#endif
+#ifdef HAVE_PLEDGE
static ssize_t
ps_root_doifignoregroup(void *data, size_t len)
{
@@ -177,10 +179,12 @@ ps_root_os(struct ps_msghdr *psm, struct msghdr *msg,
break;
case PS_ROUTE:
return ps_root_doroute(data, len);
-#ifdef HAVE_PLEDGE
+#if defined(HAVE_CAPSICUM) || defined(HAVE_PLEDGE)
case PS_IOCTLINDIRECT:
err = ps_root_doindirectioctl(psm->ps_flags, data, len);
break;
+#endif
+#ifdef HAVE_PLEDGE
case PS_IFIGNOREGRP:
return ps_root_doifignoregroup(data, len);
#endif
@@ -232,7 +236,7 @@ ps_root_route(struct dhcpcd_ctx *ctx, void *data, size_t len)
return ps_root_readerror(ctx, data, len);
}
-#ifdef HAVE_PLEDGE
+#if defined(HAVE_CAPSICUM) || defined(HAVE_PLEDGE)
ssize_t
ps_root_indirectioctl(struct dhcpcd_ctx *ctx, unsigned long request,
const char *ifname, void *data, size_t len)