From: Philippe Antoine Date: Fri, 6 Nov 2020 14:56:24 +0000 (+0100) Subject: fuzz: better packet recycling in sigpcap target X-Git-Tag: suricata-6.0.1~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F5557%2Fhead;p=thirdparty%2Fsuricata.git fuzz: better packet recycling in sigpcap target need especially to set datalink for every packet --- diff --git a/src/tests/fuzz/fuzz_sigpcap.c b/src/tests/fuzz/fuzz_sigpcap.c index 8e2395d102..f3e8ae1f21 100644 --- a/src/tests/fuzz/fuzz_sigpcap.c +++ b/src/tests/fuzz/fuzz_sigpcap.c @@ -44,6 +44,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) int r; Packet *p; size_t pos; + size_t pcap_cnt = 0; if (initialized == 0) { //Redirects logs to /dev/null @@ -138,6 +139,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) //loop over packets r = pcap_next_ex(pkts, &header, &pkt); p = PacketGetFromAlloc(); + p->ts.tv_sec = header->ts.tv_sec; + p->ts.tv_usec = header->ts.tv_usec; p->datalink = pcap_datalink(pkts); while (r > 0) { PacketCopyData(p, pkt, header->caplen); @@ -159,6 +162,11 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) } r = pcap_next_ex(pkts, &header, &pkt); PACKET_RECYCLE(p); + p->ts.tv_sec = header->ts.tv_sec; + p->ts.tv_usec = header->ts.tv_usec; + p->datalink = pcap_datalink(pkts); + pcap_cnt++; + p->pcap_cnt = pcap_cnt; } //close structure pcap_close(pkts);