From 078d18e50dc891d70a3e465c6c27e4a8d2244641 Mon Sep 17 00:00:00 2001 From: FerrumBrain Date: Mon, 31 Mar 2025 13:36:20 +0200 Subject: [PATCH 1/3] fix --- .../jazzer/driver/FuzzTargetRunner.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java b/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java index f71226b40..e58b4c62b 100644 --- a/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java +++ b/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java @@ -289,22 +289,20 @@ private static int runOne(long dataPtr, int dataLength) { if (emitDedupToken && !ignoredTokens.add(dedupToken)) { return LIBFUZZER_CONTINUE; } - boolean continueFuzzing = - emitDedupToken - && (keepGoing == 0 || Long.compareUnsigned(ignoredTokens.size(), keepGoing) < 0); + boolean continueFuzzing = emitDedupToken; boolean isFuzzingFromCommandLine = fatalFindingDeterminatorForJUnit == null || Opt.isJUnitAndCommandLine.get(); // In case of --keep_going, only the last finding is reported to JUnit as a Java object, all // previous ones are merely printed. When fuzzing from the command line, we always print all // findings. - if (isFuzzingFromCommandLine || continueFuzzing) { - Log.finding(finding); - } if (fatalFindingDeterminatorForJUnit != null) { byte[] crashData = data != null ? data : copyToArray(dataPtr, dataLength); boolean isFatal = fatalFindingDeterminatorForJUnit.test(crashData, finding); continueFuzzing = continueFuzzing && !isFatal; } + if (isFuzzingFromCommandLine || continueFuzzing) { + Log.finding(finding); + } if (emitDedupToken) { // Has to be printed to stdout as it is parsed by libFuzzer when minimizing a crash. It does // not necessarily have to appear at the beginning of a line. From 4b32f82326adefa6dcc9111f15295829eb8ca02e Mon Sep 17 00:00:00 2001 From: FerrumBrain Date: Mon, 31 Mar 2025 16:47:03 +0200 Subject: [PATCH 2/3] fix --- .../com/code_intelligence/jazzer/driver/FuzzTargetRunner.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java b/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java index e58b4c62b..e8f8c634a 100644 --- a/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java +++ b/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java @@ -299,6 +299,9 @@ private static int runOne(long dataPtr, int dataLength) { byte[] crashData = data != null ? data : copyToArray(dataPtr, dataLength); boolean isFatal = fatalFindingDeterminatorForJUnit.test(crashData, finding); continueFuzzing = continueFuzzing && !isFatal; + } else { + continueFuzzing = continueFuzzing && + (keepGoing == 0 || Long.compareUnsigned(ignoredTokens.size(), keepGoing) < 0); } if (isFuzzingFromCommandLine || continueFuzzing) { Log.finding(finding); From 3ef02377054c20f49285162799667b77e85f0630 Mon Sep 17 00:00:00 2001 From: FerrumBrain Date: Mon, 31 Mar 2025 16:55:35 +0200 Subject: [PATCH 3/3] fix --- .../code_intelligence/jazzer/driver/FuzzTargetRunner.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java b/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java index e8f8c634a..ce960e2f6 100644 --- a/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java +++ b/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java @@ -300,8 +300,9 @@ private static int runOne(long dataPtr, int dataLength) { boolean isFatal = fatalFindingDeterminatorForJUnit.test(crashData, finding); continueFuzzing = continueFuzzing && !isFatal; } else { - continueFuzzing = continueFuzzing && - (keepGoing == 0 || Long.compareUnsigned(ignoredTokens.size(), keepGoing) < 0); + continueFuzzing = + continueFuzzing + && (keepGoing == 0 || Long.compareUnsigned(ignoredTokens.size(), keepGoing) < 0); } if (isFuzzingFromCommandLine || continueFuzzing) { Log.finding(finding);