diff options
author | Fabian Meumertzheim <meumertzheim@code-intelligence.com> | 2021-03-19 14:26:02 +0100 |
---|---|---|
committer | Fabian Meumertzheim <fabian@meumertzhe.im> | 2021-03-22 15:05:37 +0100 |
commit | c95ecbf9db8263eea620384666ee724fa75b1b1b (patch) | |
tree | dfa557a023d1413799c24dbd1373d8c42c2ee8bb /WORKSPACE.bazel | |
parent | 70487525453c60e755bd7b18bc591c9c084d4fdf (diff) | |
download | jazzer-api-c95ecbf9db8263eea620384666ee724fa75b1b1b.tar.gz |
Do not intercept JVM-internal C stdlib calls
The JVM frequently calls strcmp/memcmp/..., which fills up the table of
recent compares with entries that are either duplicates of values
already reported by the bytecode instrumentation or JDK-internal strings
that are not relevant for fuzzing.
This commit adds an ignorelist to the C stdlib interceptors that filters
out calls from known JVM libraries. If the fuzz target has not yet
loaded a native library, all such callbacks are ignored, which greatly
improves fuzzer performance for string-heavy targets. E.g.,
JsonSanitizerDenylistFuzzer takes < 1 million runs now when it used to
take over 3 million.
Diffstat (limited to 'WORKSPACE.bazel')
-rw-r--r-- | WORKSPACE.bazel | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index f190a084..d54cdba4 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -206,9 +206,10 @@ http_archive( name = "libFuzzer", build_file = "//third_party:libFuzzer.BUILD", patches = [ + "//third_party:libFuzzer-make-interceptors-configurable.patch", "//third_party:libFuzzer-pass-death-callback-to-jazzer.patch", ], - sha256 = "8ad4ddbafac4f2c8f2ea523c2c4196f940e8e16f9e635210537582a48622a5d5", - strip_prefix = "llvm-project-llvmorg-11.0.0", - url = "https://github.com/llvm/llvm-project/archive/llvmorg-11.0.0.tar.gz", + sha256 = "a78949f86fc9852f51b11ceb3e6c2c61bb6e4ebb073198cebddc82451f708adf", + strip_prefix = "llvm-project-llvmorg-12.0.0-rc3", + url = "https://github.com/llvm/llvm-project/archive/llvmorg-12.0.0-rc3.tar.gz", ) |