Mercurial > hg > dhcpcd
changeset 5483:f137886e6211 draft
FreeBSD: Anticipate SIOCGIFDATA not working in Capsicum
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Thu, 24 Sep 2020 03:49:30 +0100 |
| parents | 7f7968235543 |
| children | e01d8ea25a42 |
| files | src/if-bsd.c src/privsep-bsd.c |
| diffstat | 2 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if-bsd.c Thu Sep 24 03:31:43 2020 +0100 +++ b/src/if-bsd.c Thu Sep 24 03:49:30 2020 +0100 @@ -364,7 +364,7 @@ { struct ifreq ifr = { .ifr_flags = 0 }; -#if defined(PRIVSEP) && defined(HAVE_PLEDGE) +#if defined(PRIVSEP) && (defined(HAVE_CAPSICUM) || defined(HAVE_PLEDGE)) if (IN_PRIVSEP(ctx)) return (int)ps_root_indirectioctl(ctx, cmd, ifname, data, len); #else @@ -440,7 +440,7 @@ int if_carrier_ifadata(struct interface *ifp, void *ifadata) { - int carrier = if_carrier(ifp); + int carrier = if_carrier0(ifp); struct if_data *ifdata; if (carrier != LINK_UNKNOWN || ifadata == NULL)
--- a/src/privsep-bsd.c Thu Sep 24 03:31:43 2020 +0100 +++ b/src/privsep-bsd.c Thu Sep 24 03:49:30 2020 +0100 @@ -118,7 +118,7 @@ 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 @@ 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 @@ 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 @@ 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)
