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..ce960e2f6 100644 --- a/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java +++ b/src/main/java/com/code_intelligence/jazzer/driver/FuzzTargetRunner.java @@ -289,21 +289,23 @@ 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; + } else { + continueFuzzing = + continueFuzzing + && (keepGoing == 0 || Long.compareUnsigned(ignoredTokens.size(), keepGoing) < 0); + } + 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