diff --git a/src/util-privs.c b/src/util-privs.c index 920a6d4d9e..72dae52dda 100644 --- a/src/util-privs.c +++ b/src/util-privs.c @@ -69,15 +69,23 @@ void SCDropMainThreadCaps(uint32_t userid, uint32_t groupid) capng_clear(CAPNG_SELECT_BOTH); - if (run_mode == RUNMODE_PFRING || run_mode == RUNMODE_NFQ) { - capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, - CAP_NET_RAW, /* needed for pcap live mode */ - CAP_NET_ADMIN, /* needed for nfqueue inline mode */ - -1); - } else if (run_mode == RUNMODE_PCAP_DEV || run_mode == RUNMODE_AFP_DEV) { - capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, - CAP_NET_RAW, /* needed for pcap live mode */ - -1); + switch (run_mode) { + case RUNMODE_PCAP_DEV: + case RUNMODE_AFP_DEV: + capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, + CAP_NET_RAW, /* needed for pcap live mode */ + -1); + break; + case RUNMODE_PFRING: + capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, + CAP_NET_ADMIN, + -1); + break; + case RUNMODE_NFQ: + capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, + CAP_NET_ADMIN, /* needed for nfqueue inline mode */ + -1); + break; } if (capng_change_id(userid, groupid, CAPNG_DROP_SUPP_GRP |