]> git.proxmox.com Git - mirror_lxc.git/commitdiff
oss-fuzz.sh: take SANITIZER into account
authorEvgeny Vereshchagin <evvers@ya.ru>
Sun, 28 Mar 2021 06:42:54 +0000 (06:42 +0000)
committerEvgeny Vereshchagin <evvers@ya.ru>
Sun, 28 Mar 2021 06:52:01 +0000 (06:52 +0000)
to make it possible to build the fuzzer with UBSan and MSan locally

```
$ SANITIZER=undefined ./src/tests/oss-fuzz.sh
$ printf 'lxc.signal.stop=sigrtmax-020000000020' >oss-fuzz-32596
$ UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1 ./out/fuzz-lxc-config-read oss-fuzz-32596
INFO: Seed: 595864277
INFO: Loaded 1 modules   (61553 inline 8-bit counters): 61553 [0x80a1b0, 0x819221),
INFO: Loaded 1 PC tables (61553 PCs): 61553 [0x819228,0x909938),
./out/fuzz-lxc-config-read: Running 1 inputs 1 time(s) each.
Running: oss-fuzz-32596
confile_utils.c:1051:20: runtime error: signed integer overflow: 64 - -2147483632 cannot be represented in type 'int'
    #0 0x51799a in rt_sig_num /home/vagrant/lxc/src/lxc/confile_utils.c:1051:20
    #1 0x517268 in sig_parse /home/vagrant/lxc/src/lxc/confile_utils.c:1069:11
    #2 0x500ca4 in set_config_signal_stop /home/vagrant/lxc/src/lxc/confile.c:1738:10
    #3 0x4b8c7c in parse_line /home/vagrant/lxc/src/lxc/confile.c:2962:9
    #4 0x5a5eb0 in lxc_file_for_each_line_mmap /home/vagrant/lxc/src/lxc/parse.c:125:9

```

Signed-off-by: Evgeny Vereshchagin <evvers@ya.ru>
src/tests/oss-fuzz.sh

index 6f16a6fc1df661e7c7659cb56aa911aff7e1794e..d8293e0a33dbdb2473f720920a8a578b54003cbf 100755 (executable)
@@ -4,9 +4,15 @@ set -ex
 
 export SANITIZER=${SANITIZER:-address}
 flags="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"
-sanitizer_flags="-fsanitize=address -fsanitize-address-use-after-scope"
 coverage_flags="-fsanitize=fuzzer-no-link"
 
+sanitizer_flags="-fsanitize=address -fsanitize-address-use-after-scope"
+if [[ "$SANITIZER" == "undefined" ]]; then
+    sanitizer_flags="-fsanitize=undefined"
+elif [[ "$SANITIZER" == "memory" ]]; then
+    sanitizer_flags="-fsanitize=memory -fsanitize-memory-track-origins"
+fi
+
 export CC=${CC:-clang}
 export CFLAGS=${CFLAGS:-$flags $sanitizer_flags $coverage_flags}