Skip to content

Commit 9e2b8a8

Browse files
committed
adapted to new path builder
1 parent 5a43d2a commit 9e2b8a8

2 files changed

Lines changed: 3 additions & 28 deletions

File tree

soot-infoflow-summaries/src/soot/jimple/infoflow/methodSummary/postProcessor/InfoflowResultPostProcessor.java

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
import java.util.Collection;
44
import java.util.Collections;
55
import java.util.Set;
6-
import java.util.concurrent.LinkedBlockingQueue;
7-
import java.util.concurrent.ThreadFactory;
8-
import java.util.concurrent.TimeUnit;
96

107
import org.slf4j.Logger;
118
import org.slf4j.LoggerFactory;
@@ -35,7 +32,6 @@
3532
import soot.jimple.infoflow.methodSummary.postProcessor.SummaryPathBuilder.SummarySourceInfo;
3633
import soot.jimple.infoflow.methodSummary.taintWrappers.AccessPathFragment;
3734
import soot.jimple.infoflow.methodSummary.util.AliasUtils;
38-
import soot.jimple.infoflow.solver.executors.InterruptableExecutor;
3935
import soot.jimple.infoflow.util.SootMethodRepresentationParser;
4036
import soot.util.MultiMap;
4137

@@ -115,20 +111,7 @@ public MethodSummaries postProcess(MethodSummaries flows) {
115111
if (collectedAbstractions != null && !collectedAbstractions.isEmpty()) {
116112
// Create a context-sensitive path builder. Without context-sensitivity,
117113
// we get quite some false positives here.
118-
InterruptableExecutor executor = new InterruptableExecutor(Runtime.getRuntime().availableProcessors(),
119-
Runtime.getRuntime().availableProcessors(), 30, TimeUnit.SECONDS,
120-
new LinkedBlockingQueue<Runnable>());
121-
executor.setThreadFactory(new ThreadFactory() {
122-
123-
@Override
124-
public Thread newThread(Runnable r) {
125-
Thread thr = new Thread(r);
126-
thr.setDaemon(true);
127-
thr.setName("Post processing");
128-
return thr;
129-
}
130-
});
131-
SummaryPathBuilder pathBuilder = new SummaryPathBuilder(manager, executor);
114+
SummaryPathBuilder pathBuilder = new SummaryPathBuilder(manager);
132115

133116
for (Abstraction a : collectedAbstractions.keySet()) {
134117
// If this abstraction is directly the source abstraction, we do not
@@ -149,13 +132,6 @@ public Thread newThread(Runnable r) {
149132
pathBuilder.computeTaintPaths(
150133
Collections.singleton(new AbstractionAtSink(null, a, a.getCurrentStmt())));
151134

152-
// Wait for the executor to complete all of its tasks
153-
try {
154-
executor.awaitCompletion();
155-
} catch (InterruptedException e) {
156-
logger.error("Could not wait for executor termination", e);
157-
}
158-
159135
logger.info("Obtained {} source-to-sink connections.", pathBuilder.getResultInfos().size());
160136

161137
// Reconstruct the sources

soot-infoflow-summaries/src/soot/jimple/infoflow/methodSummary/postProcessor/SummaryPathBuilder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import soot.jimple.infoflow.results.InfoflowResults;
1919
import soot.jimple.infoflow.results.ResultSinkInfo;
2020
import soot.jimple.infoflow.results.ResultSourceInfo;
21-
import soot.jimple.infoflow.solver.executors.InterruptableExecutor;
2221
import soot.jimple.infoflow.sourcesSinks.manager.SourceInfo;
2322

2423
/**
@@ -189,8 +188,8 @@ public boolean equals(Object obj) {
189188
* objects
190189
* @param executor The executor in which to run the path reconstruction tasks
191190
*/
192-
public SummaryPathBuilder(InfoflowManager manager, InterruptableExecutor executor) {
193-
super(manager, executor);
191+
public SummaryPathBuilder(InfoflowManager manager) {
192+
super(manager);
194193
this.context = new SummaryPathBuilderContext(manager.getTaintWrapper());
195194
}
196195

0 commit comments

Comments
 (0)