Skip to content

Commit 809b78f

Browse files
authored
Merge pull request #345 from stefanie-koss/fixCategoryFilter
Fix category filter for sinks
2 parents c2010a6 + 83d209d commit 809b78f

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

soot-infoflow-android/src/soot/jimple/infoflow/android/source/ConfigurationBasedCategoryFilter.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,24 @@ public SourceSinkType filter(CategoryDefinition category, SourceSinkType sourceS
6262
CategoryMode sourceMode = config.getSourceCategoriesAndModes().get(category);
6363
CategoryMode sinkMode = config.getSinkCategoriesAndModes().get(category);
6464

65-
if (config.getSourceFilterMode() == SourceSinkFilterMode.UseAllButExcluded) {
66-
if (sourceSinkType == SourceSinkType.Source || sourceSinkType == SourceSinkType.Both)
65+
if (sourceSinkType == SourceSinkType.Source || sourceSinkType == SourceSinkType.Both) {
66+
if (config.getSourceFilterMode() == SourceSinkFilterMode.UseAllButExcluded) {
6767
if (sourceMode != null && sourceMode == CategoryMode.Exclude)
6868
sourceSinkType = sourceSinkType.removeType(SourceSinkType.Source);
69-
if (sourceSinkType == SourceSinkType.Sink || sourceSinkType == SourceSinkType.Both)
70-
if (sinkMode != null && sinkMode == CategoryMode.Exclude)
71-
sourceSinkType = sourceSinkType.removeType(SourceSinkType.Sink);
72-
} else if (config.getSourceFilterMode() == SourceSinkFilterMode.UseOnlyIncluded) {
73-
if (sourceSinkType == SourceSinkType.Source || sourceSinkType == SourceSinkType.Both)
69+
} else if (config.getSourceFilterMode() == SourceSinkFilterMode.UseOnlyIncluded) {
7470
if (sourceMode == null || sourceMode != CategoryMode.Include)
7571
sourceSinkType = sourceSinkType.removeType(SourceSinkType.Source);
76-
if (sourceSinkType == SourceSinkType.Sink || sourceSinkType == SourceSinkType.Both)
77-
if (sourceMode == null || sinkMode != CategoryMode.Include)
72+
}
73+
}
74+
75+
if (sourceSinkType == SourceSinkType.Sink || sourceSinkType == SourceSinkType.Both) {
76+
if (config.getSinkFilterMode() == SourceSinkFilterMode.UseAllButExcluded) {
77+
if (sinkMode != null && sinkMode == CategoryMode.Exclude)
78+
sourceSinkType = sourceSinkType.removeType(SourceSinkType.Sink);
79+
} else if (config.getSinkFilterMode() == SourceSinkFilterMode.UseOnlyIncluded) {
80+
if (sinkMode == null || sinkMode != CategoryMode.Include)
7881
sourceSinkType = sourceSinkType.removeType(SourceSinkType.Sink);
82+
}
7983
}
8084

8185
return sourceSinkType;

0 commit comments

Comments
 (0)