diff --git a/src/source-af-packet.c b/src/source-af-packet.c index 2f3ba822a7..02a67a7aeb 100644 --- a/src/source-af-packet.c +++ b/src/source-af-packet.c @@ -1683,6 +1683,11 @@ TmEcode DecodeAFP(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packet SCEnter(); DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca); diff --git a/src/source-erf-dag.c b/src/source-erf-dag.c index b806414214..c6625ace8b 100644 --- a/src/source-erf-dag.c +++ b/src/source-erf-dag.c @@ -591,6 +591,11 @@ TmEcode DecodeErfDag(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, SCEnter(); DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca); diff --git a/src/source-erf-file.c b/src/source-erf-file.c index d3924508a3..23a719f1b1 100644 --- a/src/source-erf-file.c +++ b/src/source-erf-file.c @@ -276,6 +276,11 @@ DecodeErfFile(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, PacketQueu SCEnter(); DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* Update counters. */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca); diff --git a/src/source-ipfw.c b/src/source-ipfw.c index ec31a3f523..70ec3bc559 100644 --- a/src/source-ipfw.c +++ b/src/source-ipfw.c @@ -440,6 +440,11 @@ TmEcode DecodeIPFW(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packe SCEnter(); + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); SCPerfCounterAddUI64(dtv->counter_bytes, tv->sc_perf_pca, GET_PKT_LEN(p)); diff --git a/src/source-mpipe.c b/src/source-mpipe.c index b42bf0be2f..3c696cf133 100644 --- a/src/source-mpipe.c +++ b/src/source-mpipe.c @@ -1023,6 +1023,11 @@ TmEcode DecodeMpipe(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, SCEnter(); DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca); diff --git a/src/source-napatech.c b/src/source-napatech.c index 9f3cd6a493..032510b517 100644 --- a/src/source-napatech.c +++ b/src/source-napatech.c @@ -355,6 +355,11 @@ TmEcode NapatechDecode(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca); diff --git a/src/source-nfq.c b/src/source-nfq.c index 548f0ed5d0..78a6de490b 100644 --- a/src/source-nfq.c +++ b/src/source-nfq.c @@ -1200,6 +1200,11 @@ TmEcode DecodeNFQ(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packet IPV6Hdr *ip6h = (IPV6Hdr *)GET_PKT_DATA(p); DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); SCPerfCounterAddUI64(dtv->counter_bytes, tv->sc_perf_pca, GET_PKT_LEN(p)); SCPerfCounterAddUI64(dtv->counter_avg_pkt_size, tv->sc_perf_pca, GET_PKT_LEN(p)); diff --git a/src/source-pcap-file.c b/src/source-pcap-file.c index f23127f97c..838dc2c93c 100644 --- a/src/source-pcap-file.c +++ b/src/source-pcap-file.c @@ -385,6 +385,11 @@ TmEcode DecodePcapFile(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, P SCEnter(); DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca); diff --git a/src/source-pcap.c b/src/source-pcap.c index a4267711fc..06f72d18fc 100644 --- a/src/source-pcap.c +++ b/src/source-pcap.c @@ -707,6 +707,11 @@ TmEcode DecodePcap(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packe SCEnter(); DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca); diff --git a/src/source-pfring.c b/src/source-pfring.c index d14fe2f1e1..96f1fc7245 100644 --- a/src/source-pfring.c +++ b/src/source-pfring.c @@ -570,6 +570,11 @@ TmEcode DecodePfring(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pac { DecodeThreadVars *dtv = (DecodeThreadVars *)data; + /* XXX HACK: flow timeout can call us for injected pseudo packets + * see bug: https://redmine.openinfosecfoundation.org/issues/1107 */ + if (p->flags & PKT_PSEUDO_STREAM_END) + return TM_ECODE_OK; + /* update counters */ SCPerfCounterIncr(dtv->counter_pkts, tv->sc_perf_pca); // SCPerfCounterIncr(dtv->counter_pkts_per_sec, tv->sc_perf_pca);