diff --git a/src/main/java/com/code_intelligence/jazzer/Jazzer.java b/src/main/java/com/code_intelligence/jazzer/Jazzer.java index e0f7bad60..449e78c3c 100644 --- a/src/main/java/com/code_intelligence/jazzer/Jazzer.java +++ b/src/main/java/com/code_intelligence/jazzer/Jazzer.java @@ -97,8 +97,10 @@ private static void start(List args) throws IOException, InterruptedExce // In LibFuzzer's fork mode, the subprocesses created continuously by the main libFuzzer // process do not create further subprocesses. Creating a wrapper script for each subprocess // is an unnecessary overhead. - final boolean spawnsSubprocesses = args.stream().anyMatch( - arg -> arg.startsWith("-fork=") || arg.startsWith("-jobs=") || arg.startsWith("-merge=")); + final boolean spawnsSubprocesses = args.stream().anyMatch(arg + -> (arg.startsWith("-fork=") && !arg.equals("-fork=0")) + || (arg.startsWith("-jobs=") && !arg.equals("-jobs=0")) + || (arg.startsWith("-merge=") && !arg.equals("-merge=0"))); // argv0 is printed by libFuzzer during reproduction, so have it contain "jazzer". String arg0 = spawnsSubprocesses ? prepareArgv0(new HashMap<>()) : "jazzer"; args = Stream.concat(Stream.of(arg0), args.stream()).collect(toList());