summaryrefslogtreecommitdiffstats
path: root/src/privsep-bpf.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2020-05-20 14:15:30 +0100
committerRoy Marples <roy@marples.name>2020-05-20 14:15:30 +0100
commit40233274196ace0b2d429f7d628c3afdcda22b24 (patch)
tree4e654745cb053c642c32284721abd9c0de5025e6 /src/privsep-bpf.c
parente93d001e6c4f7ca5b6bd8052ed444b44f4e93062 (diff)
downloaddhcpcd-40233274196ace0b2d429f7d628c3afdcda22b24.tar.xz
privsep: Add comment about BPF returing EPERM on OpenBSD.
Looks like an OpenBSD bug.
Diffstat (limited to 'src/privsep-bpf.c')
-rw-r--r--src/privsep-bpf.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/privsep-bpf.c b/src/privsep-bpf.c
index 43fee54b..d8cb7973 100644
--- a/src/privsep-bpf.c
+++ b/src/privsep-bpf.c
@@ -106,6 +106,13 @@ ps_bpf_recvmsg(void *arg)
{
struct ps_process *psp = arg;
+ /*
+ * OpenBSD-6.6 at least will return EPERM here for every
+ * BOOTP sent except for the first one.
+ * However with wih EPERM, the BOOTP message is *still* sent.
+ * This means the BPF write filter isn't working as it should.
+ * On FreeBSD it works fine.
+ */
if (ps_recvpsmsg(psp->psp_ctx, psp->psp_fd,
ps_bpf_recvmsgcb, arg) == -1)
logerr(__func__);