#include #include #include #include void fuzz_openFile(const char * name){ //do nothing } int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { pcap_t * pkts; struct bpf_program bpf; char * filter; //we need at least 1 byte for linktype if (Size < 1) { return 0; } //initialize structure snaplen = 65535 pkts = pcap_open_dead(Data[Size-1], 0xFFFF); if (pkts == NULL) { printf("pcap_open_dead failed\n"); return 0; } filter = malloc(Size); memcpy(filter, Data, Size); //null terminate string filter[Size-1] = 0; if (pcap_compile(pkts, &bpf, filter, 1, PCAP_NETMASK_UNKNOWN) == 0) { pcap_setfilter(pkts, &bpf); pcap_close(pkts); pcap_freecode(&bpf); } else { pcap_close(pkts); } free(filter); return 0; }