diff --git a/scapy/tools/pcap_fuzzer.py b/scapy/tools/pcap_fuzzer.py new file mode 100755 index 00000000000..0e1417b673c --- /dev/null +++ b/scapy/tools/pcap_fuzzer.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +# SPDX-License-Identifier: GPL-2.0-only +# This file is part of Scapy +# See https://scapy.net/ for more information + +import sys +import atheris + +with atheris.instrument_imports(): + import io + import scapy + import scapy.error + import scapy.layers.all + import scapy.utils + + +def TestOneInput(input_bytes): + try: + for p in scapy.utils.rdpcap(io.BytesIO(input_bytes)): + p.summary() + except scapy.error.Scapy_Exception: + pass + + +def main(): + atheris.Setup(sys.argv, TestOneInput) + atheris.Fuzz() + + +if __name__ == "__main__": + main()