From: Victor Julien Date: Mon, 22 Dec 2014 16:00:56 +0000 (+0100) Subject: packet-pool: free pending packets X-Git-Tag: suricata-2.1beta3~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1277%2Fhead;p=thirdparty%2Fsuricata.git packet-pool: free pending packets --- diff --git a/src/tmqh-packetpool.c b/src/tmqh-packetpool.c index 38ca297c70..b19845ff08 100644 --- a/src/tmqh-packetpool.c +++ b/src/tmqh-packetpool.c @@ -294,6 +294,21 @@ void PacketPoolInit(void) void PacketPoolDestroy(void) { Packet *p = NULL; + PktPool *my_pool = GetThreadPacketPool(); + if (my_pool && my_pool->pending_head != NULL) { + p = my_pool->pending_head; + while (p) { + Packet *next_p = p->next; + PacketFree(p); + p = next_p; + my_pool->pending_count--; + } + BUG_ON(my_pool->pending_count); + my_pool->pending_pool = NULL; + my_pool->pending_head = NULL; + my_pool->pending_tail = NULL; + } + while ((p = PacketPoolGetPacket()) != NULL) { PacketFree(p); }