From 01beefc1c9d8520e44f2f23797e4a8b5ca04d258 Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Thu, 27 Oct 2011 12:00:59 +0200 Subject: [PATCH] pfring: improve error handling Treat TmThreadsSlotProcessPkt return. --- src/source-pfring.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/source-pfring.c b/src/source-pfring.c index 4c2edfcb3f..4d0c57d60f 100644 --- a/src/source-pfring.c +++ b/src/source-pfring.c @@ -243,7 +243,10 @@ TmEcode ReceivePfringLoop(ThreadVars *tv, void *data, void *slot) //printf("RecievePfring src %" PRIu32 " sport %" PRIu32 " dst %" PRIu32 " dstport %" PRIu32 "\n", // hdr.parsed_pkt.ipv4_src,hdr.parsed_pkt.l4_src_port, hdr.parsed_pkt.ipv4_dst,hdr.parsed_pkt.l4_dst_port); PfringProcessPacket(ptv, &hdr, p); - TmThreadsSlotProcessPkt(ptv->tv, ptv->slot, p); + if (TmThreadsSlotProcessPkt(ptv->tv, ptv->slot, p) != TM_ECODE_OK) { + TmqhOutputPacketpool(ptv->tv, p); + SCReturnInt(TM_ECODE_FAILED); + } } else { SCLogError(SC_ERR_PF_RING_RECV,"pfring_recv error %" PRId32 "", r); TmqhOutputPacketpool(ptv->tv, p);