Age | Commit message (Collapse) | Author |
|
Two `LOG(ERROR)` usages are converted to ordinary prints, one
`LOG(INFO)` usage is dropped without replacement since the
`JAVA_FUZZER_CLASSPATH` variable isn't even documented.
|
|
This functionality is needed to launch Jazzer in an already running JVM.
|
|
|
|
|
|
|
|
|
|
|
|
Switch from the internal fork to the official JaCoCo version. This
looses the call optimizations but removes the burden of maintaining a
dedicated fork.
Tests using the example fuzzers and JMH don't show huge performance
differences. Some are more in favor of the fork, some of the official
version.
|
|
|
|
See
https://github.com/CodeIntelligenceTesting/llvm-project-jazzer/compare/2021-11-30...2022-02-26
for the only change ("Do not redundantly copy fuzzer input").
|
|
This includes fixes required to instrument java.util.regex.**.
|
|
GitHub support has confirmed that only the /archive/refs/tags endpoint
can be assumed to return stable results over time.
For dependencies that do not offer tags we can use, I created a fork
with a "commit-<SHA>" tag for the commit we were previously depending
on.
Along the way, update some dependencies to their latest tag.
See this comment for more context regarding the GitHub guarantees for
archive stability:
https://github.com/bazel-contrib/SIG-rules-authors/issues/11#issuecomment-1029861300
|
|
The OW2 GitLab hasn't been very reliable in the past and just
encountered another outage. Getting the ASM jars from Maven should be
more reliable.
|
|
|
|
Also update abseil-cpp to the latest release.
|
|
The new version includes additional fallback logic to detect the default
JVM on macOS.
|
|
This will ease migration to bzlmod.
|
|
|
|
Fixes https://github.com/google/oss-fuzz/issues/6926.
|
|
|
|
|
|
The fork of JaCoCo is compatible with the exec files generated by
Jazzer's dumpCoverage.
This also reduces the size of the patches maintained in this repo.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bazel_common has no releases and rules_jvm_external exposes the only
part of it that we need, javadoc generation.
|
|
|
|
This allows us to get rid of the libFuzzer patch to quote argv, which
breaks Windows and would have to be turned into a conditional patch
otherwise.
With this change, all argument separators use the same syntax as the
java executable on any given platform.
Collisions of ':' as an argument separator and a classpath separator
should be rare as we have our own argument to pass in the classpath.
This commit implements a rudimentary escaping mechanism to handle the
cases where this should be an issue:
* \<separator> results in a literal <separator> and no split
* \\ results in a literal backlash not interpreted as an escape
character for a subsequent <separator>
This is a breaking change, but we should rather break this now that we
haven't committed to a version 1.0 yet. The only breakage I am aware of
is easily fixed:
https://github.com/google/oss-fuzz/blob/0c1d5231de61b4166281b4d5685aa66e9f4948a8/projects/kryo/build.sh#L48
|
|
This simplifies the libjvm location logic as well as native library
packaging. Incidentally, this fixes the libjpeg_turbo build.
In anticipation of Windows support and because it simplifies further
improvements to the fuzz target test setup, the wrapper is rewritten in
Java.
|
|
|
|
This reverts commit cdb2d87531dbcde5b549e8a45b3d80b879441e04.
Not needed, imported symbols are not exported even though the Bazel
IntelliJ plugin thinks so.
|
|
|
|
Using the (very fast) classpath traverser ClassPath, we can generate
coverage data for *all* classes on the classpath rather than just those
that were loaded during the fuzzing run.
|
|
|
|
libjvm lives in different subpaths of JAVA_HOME, depending both on the
OS and the Java version. Since it is currently not possible to select a
dependency based on the Java version, supporting Java 8 required a
custom build setting. This also broke bazel query (but not cquery).
By loading libjvm from a simple repository rule, we can cover all
OSes and Java versions with a single dependency, even if libjvm.so is
installed in a non-standard location.
|
|
|
|
Also moves the quote command args patch upstream.
|
|
|
|
|
|
|
|
This provides Bazel 5 compatibility.
|
|
libFuzzer does not quote the arguments it passes to child processes during merge
and fork, which leads to arguments being lost if passing multiple jvm_args with
delimiter ';'.
This commit adds a libFuzzer patch that properly quotes all arguments as well as
a test that fails if quoting is not appropriate.
|
|
Our libFuzzer fork has been updated as some of our patches have been
upstreamed. It now also includes the get-covered-pcs patch.
|
|
|
|
This reverts commit 45bd07e46afcd445879d5af0ef23dafbee1028a0.
The observed crashes were found to be unrelated to Jazzer.
|
|
This reverts commit 519d7b95b8df9abb4f872edea7313305fdab5c3c and updates
to a new version of jazzer_libfuzzer with a few reverts.
Speculative fix for crashes in memmove.
|
|
|