diff options
author | 2019-04-22 09:50:11 -0700 | |
---|---|---|
committer | 2019-04-22 09:50:11 -0700 | |
commit | c3d7aba0055eeb6d94c77fb8739fe4fbd8415985 (patch) | |
tree | d2af50b4dbca0f373003b50e0be1f7dfd4f209d0 | |
parent | 30190987f4faafa730569061aa99de8f9a6a78a0 (diff) |
Prevent misuse of check_build (#2340)
Don't allow using check_build with builds it doesn't actually support.
-rwxr-xr-x | infra/helper.py | 20 |
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): |