Skip to content

Commit 6f4f42e

Browse files
authored
Fix OSS-Fuzz found issue with null for "suppressable" entries for Throwables (#4261)
1 parent e62d20a commit 6f4f42e

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/std/ThrowableDeserializer.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,10 @@ public Object deserializeFromObject(JsonParser p, DeserializationContext ctxt) t
208208
// any suppressed exceptions?
209209
if (suppressed != null) {
210210
for (Throwable s : suppressed) {
211-
throwable.addSuppressed(s);
211+
// 13-Dec-2023, tatu: But skip any `null` entries we might have gotten
212+
if (s != null) {
213+
throwable.addSuppressed(s);
214+
}
212215
}
213216
}
214217

src/test/java/com/fasterxml/jackson/databind/exc/ExceptionDeserializationTest.java

+9
Original file line numberDiff line numberDiff line change
@@ -298,4 +298,13 @@ public void testWithDups() throws Exception
298298
assertNotNull(exc);
299299
assertEquals("foo", exc.getLocalizedMessage());
300300
}
301+
302+
// Found by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65042
303+
public void testWithNullSuppressed() throws Exception
304+
{
305+
final String json = a2q("{'message': 'Message!', 'suppressed':[null]}");
306+
IOException exc = MAPPER.readValue(json, IOException.class);
307+
assertNotNull(exc);
308+
assertEquals("Message!", exc.getMessage());
309+
}
301310
}

0 commit comments

Comments
 (0)