afpacket: free ring mem on error

pull/2882/head
Victor Julien 8 years ago
parent 39807b47cb
commit f47df5a671

@ -2041,8 +2041,7 @@ static int AFPCreateSocket(AFPThreadVars *ptv, char *devname, int verbose)
break;
}
TmEcode rc;
rc = AFPSetBPFFilter(ptv);
TmEcode rc = AFPSetBPFFilter(ptv);
if (rc == TM_ECODE_FAILED) {
SCLogError(SC_ERR_AFP_CREATE, "Set AF_PACKET bpf filter \"%s\" failed.", ptv->bpf_filter);
ret = AFP_FATAL_ERROR;
@ -2056,6 +2055,18 @@ static int AFPCreateSocket(AFPThreadVars *ptv, char *devname, int verbose)
socket_err:
close(ptv->socket);
ptv->socket = -1;
if (ptv->flags & AFP_TPACKET_V3) {
if (ptv->ring_v3) {
SCFree(ptv->ring_v3);
ptv->ring_v3 = NULL;
}
} else {
if (ptv->ring_v2) {
SCFree(ptv->ring_v2);
ptv->ring_v2 = NULL;
}
}
error:
return -ret;
}

Loading…
Cancel
Save