#include #include #include #include "packeteer/summarize.hpp" // Fuzzes the full decode chain together (Ethernet/RAW -> IPv4/IPv6 -> // TCP/UDP -> L7), not just each layer in isolation - catches bugs // that only show up from one layer's output feeding the next (e.g. a // span that's technically valid per-layer but wrong at the boundary). // The first byte selects which datalink summarize_packet() should // assume; the rest is the packet itself. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { if (size < 1) return 0; int datalink = (data[0] % 2 == 0) ? DLT_EN10MB : DLT_RAW; packeteer::summarize_packet({data + 1, size - 1}, datalink); return 0; }