aboutsummaryrefslogtreecommitdiff
path: root/openssl-1.1.0h/fuzz/helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'openssl-1.1.0h/fuzz/helper.py')
-rwxr-xr-xopenssl-1.1.0h/fuzz/helper.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/openssl-1.1.0h/fuzz/helper.py b/openssl-1.1.0h/fuzz/helper.py
new file mode 100755
index 0000000..f5f9d77
--- /dev/null
+++ b/openssl-1.1.0h/fuzz/helper.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python
+#
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+"""Fuzzing helper, creates and uses corpus/crash directories.
+
+fuzzer.py <fuzzer> <extra fuzzer arguments>
+"""
+
+import os
+import subprocess
+import sys
+
+FUZZER = sys.argv[1]
+
+THIS_DIR = os.path.abspath(os.path.dirname(__file__))
+CORPORA_DIR = os.path.abspath(os.path.join(THIS_DIR, "corpora"))
+
+FUZZER_DIR = os.path.abspath(os.path.join(CORPORA_DIR, FUZZER))
+if not os.path.isdir(FUZZER_DIR):
+ os.mkdir(FUZZER_DIR)
+
+corpora = []
+
+def _create(d):
+ dd = os.path.abspath(os.path.join(CORPORA_DIR, d))
+ if not os.path.isdir(dd):
+ os.mkdir(dd)
+ corpora.append(dd)
+
+def _add(d):
+ dd = os.path.abspath(os.path.join(CORPORA_DIR, d))
+ if os.path.isdir(dd):
+ corpora.append(dd)
+
+def main():
+ _create(FUZZER)
+ _create(FUZZER + "-crash")
+ _add(FUZZER + "-seed")
+
+ cmd = ([os.path.abspath(os.path.join(THIS_DIR, FUZZER))] + sys.argv[2:]
+ + ["-artifact_prefix=" + corpora[1] + "/"] + corpora)
+ print " ".join(cmd)
+ subprocess.call(cmd)
+
+if __name__ == "__main__":
+ main()