tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

sanitizers.py (1715B)


      1 #!/usr/bin/env python3
      2 
      3 from __future__ import print_function
      4 import sys
      5 
      6 def main():
      7    if len(sys.argv) < 2:
      8        raise Exception('Specify either "asan", "fuzzer", "msan", "sancov", "sourcecov", "tsan" or "ubsan" as argument.')
      9 
     10    sanitizer = sys.argv[1]
     11    if sanitizer == "ubsan":
     12        if len(sys.argv) < 3:
     13            raise Exception('ubsan requires another argument.')
     14        print('-fsanitize='+sys.argv[2]+' -fno-sanitize-recover='+sys.argv[2] + ' ', end='')
     15        print('-fno-sanitize=nonnull-attribute -fno-sanitize=enum ', end='')
     16        return
     17    if sanitizer == "asan":
     18        print('-fsanitize=address -fsanitize-address-use-after-scope ', end='')
     19        print('-fno-omit-frame-pointer -fno-optimize-sibling-calls ', end='')
     20        return
     21    if sanitizer == "msan":
     22        print('-fsanitize=memory -fsanitize-memory-track-origins ', end='')
     23        print('-fno-omit-frame-pointer -fno-optimize-sibling-calls ', end='')
     24        return
     25    if sanitizer == "sancov":
     26        if len(sys.argv) < 3:
     27            raise Exception('sancov requires another argument (edge|bb|func).')
     28        print('-fsanitize-coverage='+sys.argv[2]+' ', end='')
     29        return
     30    if sanitizer == "sourcecov":
     31        print('-fprofile-instr-generate -fcoverage-mapping', end='')
     32        return
     33    if sanitizer == "tsan":
     34        print('-fsanitize=thread ', end='')
     35        print('-fno-omit-frame-pointer -fno-optimize-sibling-calls ', end='')
     36        return
     37    if sanitizer == "fuzzer":
     38        print('-fsanitize=fuzzer-no-link ', end='')
     39        return
     40 
     41    raise Exception('Specify either "asan", "fuzzer", "msan", "sancov", "sourcecov" or "ubsan" as argument.')
     42 
     43 if __name__ == '__main__':
     44    main()