Skip to content

Commit 5476d84

Browse files
committed
fix: split disabled hooks by correct delimiter
1 parent 4312f58 commit 5476d84

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

sanitizers/src/test/java/com/example/DisabledHooksTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,11 @@
1717
package com.example;
1818

1919
import com.code_intelligence.jazzer.api.FuzzerSecurityIssueHigh;
20-
import java.io.*;
2120
import java.lang.reflect.InvocationTargetException;
21+
import java.io.ByteArrayInputStream;
22+
import java.io.File;
23+
import java.io.IOException;
24+
import java.io.ObjectInputStream;
2225
import java.util.Base64;
2326
import org.junit.After;
2427
import org.junit.Test;
@@ -104,9 +107,9 @@ public void disableReflectiveCallAndEnableDeserialization() {
104107
public void disableAllSanitizers() throws Throwable {
105108
System.setProperty(
106109
"jazzer.disabled_hooks",
107-
"com.code_intelligence.jazzer.sanitizers.ReflectiveCall,"
108-
+ "com.code_intelligence.jazzer.sanitizers.Deserialization,"
109-
+ "com.code_intelligence.jazzer.sanitizers.ExpressionLanguageInjection");
110+
"com.code_intelligence.jazzer.sanitizers.ReflectiveCall"
111+
+ File.pathSeparatorChar
112+
+ "com.code_intelligence.jazzer.sanitizers.Deserialization");
110113
triggerReflectiveCallSanitizer();
111114
triggerExpressionLanguageInjectionSanitizer();
112115
triggerDeserializationSanitizer();

src/main/java/jaz/Zer.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,18 @@
1818

1919
import com.code_intelligence.jazzer.api.FuzzerSecurityIssueHigh;
2020
import com.code_intelligence.jazzer.api.Jazzer;
21-
import java.io.*;
22-
import java.util.*;
21+
import java.io.Closeable;
22+
import java.io.File;
23+
import java.io.Flushable;
24+
import java.io.IOException;
25+
import java.io.ObjectInputStream;
26+
import java.io.Serializable;
27+
import java.util.Arrays;
28+
import java.util.Collection;
29+
import java.util.Comparator;
30+
import java.util.Iterator;
31+
import java.util.List;
32+
import java.util.ListIterator;
2333
import java.util.concurrent.Callable;
2434
import java.util.function.Function;
2535

@@ -116,6 +126,7 @@ private static void reportFinding() {
116126
}
117127

118128
private static boolean isSanitizerEnabled(byte sanitizerId) {
129+
// FIXME: This does not take into account disabled hooks set via CLI args or env.
119130
String allDisabledHooks = System.getProperty("jazzer.disabled_hooks");
120131
if (allDisabledHooks == null || allDisabledHooks.equals("")) {
121132
return true;
@@ -132,7 +143,8 @@ private static boolean isSanitizerEnabled(byte sanitizerId) {
132143
default:
133144
sanitizer = "com.code_intelligence.jazzer.sanitizers.ReflectiveCall";
134145
}
135-
return Arrays.stream(allDisabledHooks.split(",")).noneMatch(sanitizer::equals);
146+
return Arrays.stream(allDisabledHooks.split(String.valueOf(File.pathSeparatorChar)))
147+
.noneMatch(sanitizer::equals);
136148
}
137149

138150
// Getter/Setter

0 commit comments

Comments
 (0)