Mercurial > hg > dhcpcd
changeset 5505:5aedb51585b6 draft
privsep: Ensure command is for BPF first and interface valid second
Otherwise we won't call inet_dispatch on a message meant for it.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Fri, 09 Oct 2020 14:45:57 +0100 |
| parents | 4d665b4bede5 |
| children | 9c7bd8bd8729 |
| files | src/privsep-bpf.c |
| diffstat | 1 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/privsep-bpf.c Wed Oct 07 16:21:26 2020 +0100 +++ b/src/privsep-bpf.c Fri Oct 09 14:45:57 2020 +0100 @@ -253,6 +253,17 @@ uint8_t *bpf; size_t bpf_len; + switch (psm->ps_cmd) { +#ifdef ARP + case PS_BPF_ARP: +#endif + case PS_BPF_BOOTP: + break; + default: + errno = ENOTSUP; + return -1; + } + ifp = if_findindex(ctx->ifaces, psm->ps_id.psi_ifindex); /* interface may have departed .... */ if (ifp == NULL) @@ -270,9 +281,6 @@ case PS_BPF_BOOTP: dhcp_packet(ifp, bpf, bpf_len, (unsigned int)psm->ps_flags); break; - default: - errno = ENOTSUP; - return -1; } return 1;
