diff options
author | Fabian Meumertzheim <meumertzheim@code-intelligence.com> | 2021-06-10 16:57:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-10 07:57:42 -0700 |
commit | 73d78b88790b501f119801c4f68463180b76e1d9 (patch) | |
tree | 37444da53b933846777119b23b2719f3e2b456dc /infra/base-images | |
parent | a44547d8d6f78ad7ce02323ecc33382a1d628e39 (diff) |
[infra][jvm] Add Jazzer UBSan support (#5898)
* [infra][jvm] Add Jazzer UBSan support
* [java-example] Reenable and plant UB
* [docs] Mention support for Java UBSan in docs
Also adds a link to the java-example build.sh to the docs.
Diffstat (limited to 'infra/base-images')
-rw-r--r-- | infra/base-images/base-builder/Dockerfile | 4 | ||||
-rwxr-xr-x | infra/base-images/base-builder/compile | 12 | ||||
-rwxr-xr-x | infra/base-images/base-runner/coverage | 2 |
3 files changed, 12 insertions, 6 deletions
diff --git a/infra/base-images/base-builder/Dockerfile b/infra/base-images/base-builder/Dockerfile index 40b99316..cf6d4563 100644 --- a/infra/base-images/base-builder/Dockerfile +++ b/infra/base-images/base-builder/Dockerfile @@ -120,8 +120,8 @@ RUN cd $SRC/ && \ git clone --depth=1 https://github.com/CodeIntelligenceTesting/jazzer && \ cd jazzer && \ bazel build --java_runtime_version=localjdk_15 -c opt --cxxopt="-stdlib=libc++" --linkopt=-lc++ \ - //agent:jazzer_agent_deploy.jar //driver:jazzer_driver //driver:jazzer_driver_asan //agent:jazzer_api_deploy.jar && \ - cp bazel-bin/agent/jazzer_agent_deploy.jar bazel-bin/driver/jazzer_driver bazel-bin/driver/jazzer_driver_asan /usr/local/bin/ && \ + //agent:jazzer_agent_deploy.jar //driver:jazzer_driver //driver:jazzer_driver_asan //driver:jazzer_driver_ubsan //agent:jazzer_api_deploy.jar && \ + cp bazel-bin/agent/jazzer_agent_deploy.jar bazel-bin/driver/jazzer_driver bazel-bin/driver/jazzer_driver_asan bazel-bin/driver/jazzer_driver_ubsan /usr/local/bin/ && \ cp bazel-bin/agent/jazzer_api_deploy.jar $JAZZER_API_PATH && \ rm -rf ~/.cache/bazel ~/.cache/bazelisk && \ rm -rf $SRC/jazzer diff --git a/infra/base-images/base-builder/compile b/infra/base-images/base-builder/compile index 6882e179..eeb160fe 100755 --- a/infra/base-images/base-builder/compile +++ b/infra/base-images/base-builder/compile @@ -27,8 +27,8 @@ if [ "$FUZZING_LANGUAGE" = "jvm" ]; then echo "ERROR: JVM projects can be fuzzed with libFuzzer engine only." exit 1 fi - if [ "$SANITIZER" != "address" ] && [ "$SANITIZER" != "coverage" ]; then - echo "ERROR: JVM projects can be fuzzed with AddressSanitizer only." + if [ "$SANITIZER" != "address" ] && [ "$SANITIZER" != "coverage" ] && [ "$SANITIZER" != "undefined" ]; then + echo "ERROR: JVM projects can be fuzzed with AddressSanitizer and UndefinedBehaviorSanitizer only." exit 1 fi if [ "$ARCHITECTURE" != "x86_64" ]; then @@ -136,7 +136,13 @@ cp $(which llvm-symbolizer) $OUT/ # Copy Jazzer to $OUT if needed. if [ "$FUZZING_LANGUAGE" = "jvm" ]; then - cp $(which jazzer_agent_deploy.jar) $(which jazzer_driver) $(which jazzer_driver_asan) $OUT/ + cp $(which jazzer_agent_deploy.jar) $(which jazzer_driver) $OUT/ + jazzer_driver_with_sanitizer=$OUT/jazzer_driver_with_sanitizer + if [ "$SANITIZER" = "address" ]; then + cp $(which jazzer_driver_asan) $jazzer_driver_with_sanitizer + elif [ "$SANITIZER" = "undefined" ]; then + cp $(which jazzer_driver_ubsan) $jazzer_driver_with_sanitizer + fi fi echo "---------------------------------------------------------------" diff --git a/infra/base-images/base-runner/coverage b/infra/base-images/base-runner/coverage index 31356cf9..785689c7 100755 --- a/infra/base-images/base-runner/coverage +++ b/infra/base-images/base-runner/coverage @@ -24,7 +24,7 @@ else -e 'llvm-symbolizer' \ -e 'jazzer_agent_deploy.jar' \ -e 'jazzer_driver' \ - -e 'jazzer_driver_asan')" + -e 'jazzer_driver_with_sanitizer')" fi DUMPS_DIR="$OUT/dumps" |