From: Ken Steele Date: Tue, 14 May 2013 19:38:00 +0000 (-0400) Subject: Preserve PKT_ALLOC flag inside PACKET_RECYCLE(). X-Git-Tag: suricata-2.0beta1~145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=93e73041171a294063061648e880ec898a2da828;p=thirdparty%2Fsuricata.git Preserve PKT_ALLOC flag inside PACKET_RECYCLE(). The PKT_ALLOC flag was being cleared by PACKET_RECYCLE(), which could then result in a packet being pushed back to the Packet ring buffer incorrectly. --- diff --git a/src/decode.h b/src/decode.h index 446bdf6f7d..a8b38e0e71 100644 --- a/src/decode.h +++ b/src/decode.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2012 Open Information Security Foundation +/* Copyright (C) 2007-2013 Open Information Security Foundation * * You can copy, redistribute or modify this Program under the terms of * the GNU General Public License version 2 as published by the Free @@ -639,7 +639,7 @@ typedef struct DecodeThreadVars_ (p)->dp = 0; \ (p)->proto = 0; \ (p)->recursion_level = 0; \ - (p)->flags = 0; \ + (p)->flags = (p)->flags & PKT_ALLOC; \ (p)->flowflags = 0; \ (p)->pkt_src = 0; \ FlowDeReference(&((p)->flow)); \