From 330c2d4a34c20a0779f7e3d2f7586ad73bf00219 Mon Sep 17 00:00:00 2001 From: luigi Date: Tue, 26 May 2015 21:12:02 +0000 Subject: [PATCH] MFC: 272451, 272653 add CAP_EVENT so that we can poll() on netmap and pcap file descriptors git-svn-id: svn://svn.freebsd.org/base/stable/10@283583 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- contrib/tcpdump/tcpdump.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/contrib/tcpdump/tcpdump.c b/contrib/tcpdump/tcpdump.c index 511e1af18..9c5e96001 100644 --- a/contrib/tcpdump/tcpdump.c +++ b/contrib/tcpdump/tcpdump.c @@ -1486,7 +1486,12 @@ main(int argc, char **argv) if (RFileName == NULL && VFileName == NULL) { static const unsigned long cmds[] = { BIOCGSTATS }; - cap_rights_init(&rights, CAP_IOCTL, CAP_READ); + /* + * The various libpcap devices use a combination of + * read (bpf), ioctl (bpf, netmap), poll (netmap). + * Grant the relevant access rights, sorted by name. + */ + cap_rights_init(&rights, CAP_EVENT, CAP_IOCTL, CAP_READ); if (cap_rights_limit(pcap_fileno(pd), &rights) < 0 && errno != ENOSYS) { error("unable to limit pcap descriptor"); -- 2.45.0