diff options
author | Fabian Meumertzheim <meumertzheim@code-intelligence.com> | 2021-06-25 10:29:43 +0200 |
---|---|---|
committer | Fabian Meumertzheim <fabian@meumertzhe.im> | 2021-06-25 11:25:04 +0200 |
commit | 43bd323d7d237d3d2c7431b54167f17e7726fadb (patch) | |
tree | 883ab89df16e70f5da719dc937597c15458d816c /bazel | |
parent | 4179c2f486339ca71a4eb979a81f92ea51bd5c9b (diff) | |
download | jazzer-api-43bd323d7d237d3d2c7431b54167f17e7726fadb.tar.gz |
Improve LD_LIBRARY_PATH in jazzer and fuzz_target_test_wrapper.sh
fuzz_target_test_wrapper.sh also needs logic to add libjvm.so to the
LD_LIBRARY_PATH or tests fail on some machines. Along the way, clean
up the script and add comments.
Diffstat (limited to 'bazel')
-rwxr-xr-x | bazel/fuzz_target_test_wrapper.sh | 9 | ||||
-rwxr-xr-x | bazel/jazzer | 14 |
2 files changed, 17 insertions, 6 deletions
diff --git a/bazel/fuzz_target_test_wrapper.sh b/bazel/fuzz_target_test_wrapper.sh index f79809e2..53a46e35 100755 --- a/bazel/fuzz_target_test_wrapper.sh +++ b/bazel/fuzz_target_test_wrapper.sh @@ -16,6 +16,15 @@ # Crashes will be available as test outputs. These are cleared on the next run, # so this is only useful for examples. DEFAULT_CRASH_PREFIX="$TEST_UNDECLARED_OUTPUTS_DIR" + +# Determine the path to load libjvm.so from, either relative to the location of +# the java binary or to $JAVA_HOME, if set. +JAVA_BIN=$(readlink -f "$(which java)") +JAVA_HOME=${JAVA_HOME:-${JAVA_BIN%/bin/java}} +# The location of libjvm.so relative to the JDK differs between JDK <= 8 and 9+. +JVM_LD_LIBRARY_PATH="$JAVA_HOME/lib/server:$JAVA_HOME/lib/amd64/server" + +LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$JVM_LD_LIBRARY_PATH \ eval "$1" -artifact_prefix="$DEFAULT_CRASH_PREFIX/" --reproducer_path="$DEFAULT_CRASH_PREFIX" -seed=2735196724 "${@:2}" # Assert that we either found a crash in java (exit code 77) or an ASan crash # (exit code 76). diff --git a/bazel/jazzer b/bazel/jazzer index 0bf1fd17..97a0ada1 100755 --- a/bazel/jazzer +++ b/bazel/jazzer @@ -1,9 +1,11 @@ #!/usr/bin/env bash -JAVA_BIN=$(readlink -f "$(command -v java)") -HEURISTIC_JAVA_BASE_PATH=${JAVA_BIN%/bin/java} -JAVA_BASE_PATH=${JAVA_HOME:-$HEURISTIC_JAVA_BASE_PATH} -JVM_LD_LIBRARY_PATH="$JAVA_BASE_PATH/lib/server:$JAVA_BASE_PATH/lib/amd64/server" -MODIFIED_LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$JVM_LD_LIBRARY_PATH" +# Determine the path to load libjvm.so from, either relative to the location of +# the java binary or to $JAVA_HOME, if set. +JAVA_BIN=$(readlink -f "$(which java)") +JAVA_HOME=${JAVA_HOME:-${JAVA_BIN%/bin/java}} +# The location of libjvm.so relative to the JDK differs between JDK <= 8 and 9+. +JVM_LD_LIBRARY_PATH="$JAVA_HOME/lib/server:$JAVA_HOME/lib/amd64/server" -LD_LIBRARY_PATH="$MODIFIED_LD_LIBRARY_PATH" $(dirname "$0")/jazzer_driver "$@" +LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$JVM_LD_LIBRARY_PATH \ +"$(dirname "$0")/jazzer_driver" "$@" |