diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/BUILD.bazel | 8 | ||||
-rw-r--r-- | examples/src/main/java/com/example/JpegImageParserFuzzer.java | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel index 23cc51d9..df1e7832 100644 --- a/examples/BUILD.bazel +++ b/examples/BUILD.bazel @@ -69,7 +69,13 @@ java_fuzz_target_test( srcs = [ "src/main/java/com/example/JpegImageParserFuzzer.java", ], - fuzzer_args = ["-fork=5"], + fuzzer_args = [ + "-fork=5", + # Only used to verify that arguments are correctly passed down to child + # processes. Quoting with both " and ' is necessary in this test since + # one level of quoting is lost when passing through jazzer_wrapper.sh + "--jvm_args=\"'-Dfoo=foo;-Dbar=bar'\"", + ], # The exit codes of the forked libFuzzer processes are not picked up correctly. tags = ["broken-on-darwin"], target_class = "com.example.JpegImageParserFuzzer", diff --git a/examples/src/main/java/com/example/JpegImageParserFuzzer.java b/examples/src/main/java/com/example/JpegImageParserFuzzer.java index ba3e7c81..f9d119e8 100644 --- a/examples/src/main/java/com/example/JpegImageParserFuzzer.java +++ b/examples/src/main/java/com/example/JpegImageParserFuzzer.java @@ -22,6 +22,16 @@ import org.apache.commons.imaging.formats.jpeg.JpegImageParser; // Found https://issues.apache.org/jira/browse/IMAGING-275. public class JpegImageParserFuzzer { + public static void fuzzerInitialize() { + // Only used to verify that arguments are correctly passed down to child processes. + if (System.getProperty("foo") == null || System.getProperty("bar") == null) { + // The child process did not have a sufficiently high memory limit, + // Exit the process with an exit code different from that for a finding. + System.err.println("ERROR: Did not pass all jvm_args to child process."); + System.exit(3); + } + } + public static void fuzzerTestOneInput(byte[] input) { try { new JpegImageParser().getBufferedImage(new ByteSourceArray(input), new HashMap<>()); |