Bug #2201: af_packet - treat BPF filter error as fatal

There is no need to try to set erroneous BPF filter again and again. Such attempts
lead to constant mmap() calls without corresponding munmap() when 'use-mmap' is enabled.
pull/2926/head
Alexander Gozman 8 years ago committed by Victor Julien
parent 49e61c7c1e
commit 705ebc9d9a

@ -2045,21 +2045,14 @@ static int AFPCreateSocket(AFPThreadVars *ptv, char *devname, int verbose)
rc = AFPSetBPFFilter(ptv);
if (rc == TM_ECODE_FAILED) {
SCLogError(SC_ERR_AFP_CREATE, "Set AF_PACKET bpf filter \"%s\" failed.", ptv->bpf_filter);
goto frame_err;
ret = AFP_FATAL_ERROR;
goto socket_err;
}
/* Init is ok */
AFPSwitchState(ptv, AFP_STATE_UP);
return 0;
frame_err:
if (ptv->flags & AFP_TPACKET_V3) {
if (ptv->ring_v3)
SCFree(ptv->ring_v3);
} else {
if (ptv->ring_v2)
SCFree(ptv->ring_v2);
}
socket_err:
close(ptv->socket);
ptv->socket = -1;
@ -2112,7 +2105,6 @@ TmEcode AFPSetBPFFilter(AFPThreadVars *ptv)
return TM_ECODE_OK;
}
/**
* \brief Init function for ReceiveAFP.
*

Loading…
Cancel
Save