Skip to content

Commit b378e20

Browse files
committed
autofuzz: Filter out unnamed classes
Classes without a canonical name cannot be instantiated by reproducers and thus also shouldn't be used by Autofuzz. If we find constructing them useful, we should instead look for factory methods.
1 parent cec3a81 commit b378e20

File tree

1 file changed

+3
-0
lines changed
  • src/main/java/com/code_intelligence/jazzer/autofuzz

1 file changed

+3
-0
lines changed

src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,9 @@ Object consume(FuzzedDataProvider data, Type genericType, AutofuzzCodegenVisitor
601601
implementingClasses = children.getStandardClasses()
602602
.filter(info -> !Modifier.isAbstract(info.getModifiers()))
603603
.filter(info -> lookup.isAccessible(info, info.getModifiers()))
604+
// Filter out anonymous and local classes, which can't be
605+
// instantiated in reproducers.
606+
.filter(info -> info.getName() != null)
604607
.loadClasses();
605608
implementingClassesCache.put(type, implementingClasses);
606609
}

0 commit comments

Comments
 (0)