Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/openssl/fuzz/helper.py
34858 views
1
#!/usr/bin/env python3
2
#
3
# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
4
#
5
# Licensed under the Apache License 2.0 (the "License"). You may not use
6
# this file except in compliance with the License. You can obtain a copy
7
# in the file LICENSE in the source distribution or at
8
# https://www.openssl.org/source/license.html
9
10
"""Fuzzing helper, creates and uses corpus/crash directories.
11
12
fuzzer.py <fuzzer> <extra fuzzer arguments>
13
"""
14
15
import os
16
import subprocess
17
import sys
18
19
FUZZER = sys.argv[1]
20
21
THIS_DIR = os.path.abspath(os.path.dirname(__file__))
22
CORPORA_DIR = os.path.abspath(os.path.join(THIS_DIR, "corpora"))
23
24
FUZZER_DIR = os.path.abspath(os.path.join(CORPORA_DIR, FUZZER))
25
if not os.path.isdir(FUZZER_DIR):
26
os.mkdir(FUZZER_DIR)
27
28
corpora = []
29
30
def _create(d):
31
dd = os.path.abspath(os.path.join(CORPORA_DIR, d))
32
if not os.path.isdir(dd):
33
os.mkdir(dd)
34
corpora.append(dd)
35
36
def _add(d):
37
dd = os.path.abspath(os.path.join(CORPORA_DIR, d))
38
if os.path.isdir(dd):
39
corpora.append(dd)
40
41
def main():
42
_create(FUZZER)
43
_create(FUZZER + "-crash")
44
_add(FUZZER + "-seed")
45
46
cmd = ([os.path.abspath(os.path.join(THIS_DIR, FUZZER))] + sys.argv[2:]
47
+ ["-artifact_prefix=" + corpora[1] + "/"] + corpora)
48
print(" ".join(cmd))
49
subprocess.call(cmd)
50
51
if __name__ == "__main__":
52
main()
53
54