aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>2019-04-22 09:50:11 -0700
committerGravatar GitHub <noreply@github.com>2019-04-22 09:50:11 -0700
commitc3d7aba0055eeb6d94c77fb8739fe4fbd8415985 (patch)
treed2af50b4dbca0f373003b50e0be1f7dfd4f209d0
parent30190987f4faafa730569061aa99de8f9a6a78a0 (diff)
Prevent misuse of check_build (#2340)
Don't allow using check_build with builds it doesn't actually support.
-rwxr-xr-xinfra/helper.py20
1 files changed, 11 insertions, 9 deletions
diff --git a/infra/helper.py b/infra/helper.py
index 74f481ed..3c3499e1 100755
--- a/infra/helper.py
+++ b/infra/helper.py
@@ -95,8 +95,9 @@ def main():
check_build_parser = subparsers.add_parser(
'check_build', help='Checks that fuzzers execute without errors.')
- _add_engine_args(check_build_parser)
- _add_sanitizer_args(check_build_parser)
+ _add_engine_args(check_build_parser, choices=['libfuzzer', 'afl'])
+ _add_sanitizer_args(check_build_parser,
+ choices=['address', 'memory', 'undefined'])
_add_environment_args(check_build_parser)
check_build_parser.add_argument('project_name', help='name of the project')
check_build_parser.add_argument('fuzzer_name', help='name of the fuzzer',
@@ -248,17 +249,18 @@ def _get_work_dir(project_name=''):
return os.path.join(BUILD_DIR, 'work', project_name)
-def _add_engine_args(parser):
+def _add_engine_args(parser, choices=None):
"""Add common engine args."""
- parser.add_argument('--engine', default='libfuzzer',
- choices=['libfuzzer', 'afl', 'honggfuzz', 'dataflow', 'none'])
+ if choices is None:
+ choices = ['libfuzzer', 'afl', 'honggfuzz', 'dataflow', 'none']
+ parser.add_argument('--engine', default='libfuzzer', choices=choices)
-def _add_sanitizer_args(parser):
+def _add_sanitizer_args(parser, choices=None):
"""Add common sanitizer args."""
- parser.add_argument(
- '--sanitizer', default='address',
- choices=['address', 'memory', 'undefined', 'coverage', 'dataflow'])
+ if choices is None:
+ choices = ['address', 'memory', 'undefined', 'coverage', 'dataflow']
+ parser.add_argument('--sanitizer', default='address', choices=choices)
def _add_environment_args(parser):