]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
fuzz: better packet recycling in sigpcap target 5557/head
authorPhilippe Antoine <contact@catenacyber.fr>
Fri, 6 Nov 2020 14:56:24 +0000 (15:56 +0100)
committerPhilippe Antoine <contact@catenacyber.fr>
Thu, 12 Nov 2020 11:01:01 +0000 (12:01 +0100)
need especially to set datalink for every packet

src/tests/fuzz/fuzz_sigpcap.c

index 8e2395d1027afa9985f4198df21663a7cc14c6ff..f3e8ae1f21e69b99574b7ce719b859aa3a102b32 100644 (file)
@@ -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);