fuzz: better packet recycling in sigpcap target

need especially to set datalink for every packet
pull/5557/head
Philippe Antoine 4 years ago
parent c93cbe66c2
commit 7d594d8710

@ -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);

Loading…
Cancel
Save