Skip to content

Commit 2ad9570

Browse files
committed
Merge branch 'develop' of https://github.com/secure-software-engineering/FlowDroid into develop
2 parents f028170 + 7d6016e commit 2ad9570

File tree

10 files changed

+90
-39
lines changed

10 files changed

+90
-39
lines changed

soot-infoflow-android/pom.xml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@
1313
<maven.compiler.source>1.8</maven.compiler.source>
1414
<maven.compiler.target>1.8</maven.compiler.target>
1515
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
16+
17+
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
18+
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
19+
<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
20+
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
21+
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
22+
<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
1623
</properties>
1724

1825
<organization>
@@ -47,17 +54,17 @@
4754
<plugin>
4855
<groupId>org.apache.maven.plugins</groupId>
4956
<artifactId>maven-compiler-plugin</artifactId>
50-
<version>3.2</version>
57+
<version>${maven-compiler-plugin.version}</version>
5158
</plugin>
5259
<plugin>
5360
<groupId>org.apache.maven.plugins</groupId>
5461
<artifactId>maven-surefire-plugin</artifactId>
55-
<version>2.22.2</version>
62+
<version>${maven-surefire-plugin.version}</version>
5663
</plugin>
5764
<plugin>
5865
<groupId>org.apache.maven.plugins</groupId>
5966
<artifactId>maven-jar-plugin</artifactId>
60-
<version>3.0.2</version>
67+
<version>${maven-jar-plugin.version}</version>
6168
<configuration>
6269
<archive>
6370
<manifest>
@@ -70,7 +77,7 @@
7077
<plugin>
7178
<groupId>org.apache.maven.plugins</groupId>
7279
<artifactId>maven-source-plugin</artifactId>
73-
<version>3.0.1</version>
80+
<version>${maven-source-plugin.version}</version>
7481
<executions>
7582
<execution>
7683
<id>attach-sources</id>
@@ -83,7 +90,7 @@
8390
<plugin>
8491
<groupId>org.apache.maven.plugins</groupId>
8592
<artifactId>maven-javadoc-plugin</artifactId>
86-
<version>2.10.4</version>
93+
<version>${maven-javadoc-plugin.version}</version>
8794
<configuration>
8895
<failOnError>false</failOnError>
8996
</configuration>

soot-infoflow-android/src/soot/jimple/infoflow/android/callbacks/AbstractCallbackAnalyzer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ protected void analyzeMethodForViewPagers(SootClass clazz, SootMethod method) {
528528
SootMethod getItem = rt.getSootClass().getMethodUnsafe("android.support.v4.app.Fragment getItem(int)");
529529
if (getItem == null)
530530
getItem = rt.getSootClass().getMethodUnsafe("androidx.fragment.app.Fragment getItem(int)");
531-
if (getItem == null)
531+
if (getItem == null || !getItem.isConcrete())
532532
continue;
533533

534534
Body b = getItem.retrieveActiveBody();

soot-infoflow-android/src/soot/jimple/infoflow/android/callbacks/DefaultCallbackAnalyzer.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,11 +230,13 @@ private void analyzeRechableMethods(SootClass lifecycleElement, List<MethodOrMet
230230
filter.setReachableMethods(rm);
231231

232232
SootMethod method = reachableMethods.next().method();
233-
analyzeMethodForCallbackRegistrations(lifecycleElement, method);
234-
analyzeMethodForDynamicBroadcastReceiver(method);
235-
analyzeMethodForServiceConnection(method);
236-
analyzeMethodForFragmentTransaction(lifecycleElement, method);
237-
analyzeMethodForViewPagers(lifecycleElement, method);
233+
if (method.isConcrete()) {
234+
analyzeMethodForCallbackRegistrations(lifecycleElement, method);
235+
analyzeMethodForDynamicBroadcastReceiver(method);
236+
analyzeMethodForServiceConnection(method);
237+
analyzeMethodForFragmentTransaction(lifecycleElement, method);
238+
analyzeMethodForViewPagers(lifecycleElement, method);
239+
}
238240
}
239241
}
240242

soot-infoflow-android/src/soot/jimple/infoflow/android/entryPointCreators/components/AbstractComponentEntryPointCreator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ public void assignIntent(SootClass hostComponent, SootMethod method, int indexOf
274274
* RuntimeException: couldn't find method getIntent(*) in
275275
* com.google.android.gcm.GCMBroadcastReceiver
276276
*/
277-
SootMethod m = hostComponent.getMethodByName("getIntent");
277+
SootMethod m = hostComponent.getMethod("android.content.Intent getIntent()");
278278
if (stmt.getTag(SimulatedCodeElementTag.TAG_NAME) != null) {
279279
if (stmt.getInvokeExpr().getMethod().equals(m))
280280
break;

soot-infoflow-android/src/soot/jimple/infoflow/android/resources/LayoutFileParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,8 @@ private void parseIncludeAttributes(String layoutFile, AXmlNode rootNode) {
306306
return;
307307
}
308308
if (!(targetRes instanceof StringResource)) {
309-
logger.warn("Invalid target node for include tag in layout XML, was %s",
310-
targetRes.getClass().getName());
309+
logger.warn(String.format("Invalid target node for include tag in layout XML, was %s",
310+
targetRes.getClass().getName()));
311311
return;
312312
}
313313
String targetFile = ((StringResource) targetRes).getValue();

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

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@
2626
import soot.SootField;
2727
import soot.SootMethod;
2828
import soot.Unit;
29+
import soot.Value;
2930
import soot.jimple.AssignStmt;
3031
import soot.jimple.FieldRef;
3132
import soot.jimple.IntConstant;
3233
import soot.jimple.InvokeExpr;
34+
import soot.jimple.NullConstant;
3335
import soot.jimple.Stmt;
3436
import soot.jimple.StringConstant;
3537
import soot.jimple.infoflow.InfoflowConfiguration.LayoutMatchingMode;
@@ -204,7 +206,7 @@ else if (assign.getRightOp() instanceof FieldRef) {
204206
if (tag instanceof IntegerConstantValueTag)
205207
return ((IntegerConstantValueTag) tag).getIntValue();
206208
else
207-
logger.error("Constant %s was of unexpected type", field.toString());
209+
logger.error(String.format("Constant %s was of unexpected type", field.toString()));
208210
} else if (assign.getRightOp() instanceof InvokeExpr) {
209211
InvokeExpr inv = (InvokeExpr) assign.getRightOp();
210212
if (inv.getMethod().getName().equals("getIdentifier")
@@ -214,7 +216,8 @@ else if (assign.getRightOp() instanceof FieldRef) {
214216
// well-known
215217
// Android API method for resource handling
216218
if (inv.getArgCount() != 3) {
217-
logger.error("Invalid parameter count (%d) for call to getIdentifier", inv.getArgCount());
219+
logger.error(String.format("Invalid parameter count (%d) for call to getIdentifier",
220+
inv.getArgCount()));
218221
return null;
219222
}
220223

@@ -228,13 +231,17 @@ else if (assign.getRightOp() instanceof FieldRef) {
228231
resName = ((StringConstant) inv.getArg(0)).value;
229232
if (inv.getArg(1) instanceof StringConstant)
230233
resID = ((StringConstant) inv.getArg(1)).value;
231-
if (inv.getArg(2) instanceof StringConstant)
232-
packageName = ((StringConstant) inv.getArg(2)).value;
233-
else if (inv.getArg(2) instanceof Local)
234-
packageName = findLastStringAssignment(stmt, (Local) inv.getArg(2), cfg);
234+
235+
Value thirdArg = inv.getArg(2);
236+
if (thirdArg instanceof StringConstant)
237+
packageName = ((StringConstant) thirdArg).value;
238+
else if (thirdArg instanceof Local)
239+
packageName = findLastStringAssignment(stmt, (Local) thirdArg, cfg);
240+
else if (thirdArg instanceof NullConstant)
241+
return null;
235242
else {
236-
logger.error("Unknown parameter type %s in call to getIdentifier",
237-
inv.getArg(2).getClass().getName());
243+
logger.error(String.format("Unknown parameter type %s in call to getIdentifier",
244+
inv.getArg(2).getClass().getName()));
238245
return null;
239246
}
240247

soot-infoflow-cmd/pom.xml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@
1212
<maven.compiler.source>1.7</maven.compiler.source>
1313
<maven.compiler.target>1.7</maven.compiler.target>
1414
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
16+
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
17+
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
18+
<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
19+
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
20+
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
21+
<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
1522
</properties>
1623

1724
<organization>
@@ -46,17 +53,17 @@
4653
<plugin>
4754
<groupId>org.apache.maven.plugins</groupId>
4855
<artifactId>maven-compiler-plugin</artifactId>
49-
<version>3.2</version>
56+
<version>${maven-compiler-plugin.version}</version>
5057
</plugin>
5158
<plugin>
5259
<groupId>org.apache.maven.plugins</groupId>
5360
<artifactId>maven-surefire-plugin</artifactId>
54-
<version>2.17</version>
61+
<version>${maven-surefire-plugin.version}</version>
5562
</plugin>
5663
<plugin>
5764
<groupId>org.apache.maven.plugins</groupId>
5865
<artifactId>maven-jar-plugin</artifactId>
59-
<version>3.0.2</version>
66+
<version>${maven-jar-plugin.version}</version>
6067
<configuration>
6168
<archive>
6269
<manifest>
@@ -69,7 +76,7 @@
6976
<plugin>
7077
<groupId>org.apache.maven.plugins</groupId>
7178
<artifactId>maven-source-plugin</artifactId>
72-
<version>3.0.1</version>
79+
<version>${maven-source-plugin.version}</version>
7380
<executions>
7481
<execution>
7582
<id>attach-sources</id>
@@ -82,7 +89,7 @@
8289
<plugin>
8390
<groupId>org.apache.maven.plugins</groupId>
8491
<artifactId>maven-javadoc-plugin</artifactId>
85-
<version>2.10.4</version>
92+
<version>${maven-javadoc-plugin.version}</version>
8693
<configuration>
8794
<failOnError>false</failOnError>
8895
</configuration>

soot-infoflow-summaries/pom.xml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@
1212
<maven.compiler.source>1.8</maven.compiler.source>
1313
<maven.compiler.target>1.8</maven.compiler.target>
1414
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15-
<maven-surefire-plugin.version>2.20.1</maven-surefire-plugin.version>
15+
16+
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
17+
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
18+
<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
19+
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
20+
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
21+
<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
1622
</properties>
1723

1824
<organization>
@@ -47,7 +53,7 @@
4753
<plugin>
4854
<groupId>org.apache.maven.plugins</groupId>
4955
<artifactId>maven-compiler-plugin</artifactId>
50-
<version>3.2</version>
56+
<version>${maven-compiler-plugin.version}</version>
5157
</plugin>
5258
<plugin>
5359
<groupId>org.apache.maven.plugins</groupId>
@@ -57,7 +63,7 @@
5763
<plugin>
5864
<groupId>org.apache.maven.plugins</groupId>
5965
<artifactId>maven-jar-plugin</artifactId>
60-
<version>3.0.2</version>
66+
<version>${maven-jar-plugin.version}</version>
6167
<configuration>
6268
<archive>
6369
<manifest>
@@ -70,7 +76,7 @@
7076
<plugin>
7177
<groupId>org.apache.maven.plugins</groupId>
7278
<artifactId>maven-source-plugin</artifactId>
73-
<version>3.0.1</version>
79+
<version>${maven-source-plugin.version}</version>
7480
<executions>
7581
<execution>
7682
<id>attach-sources</id>
@@ -83,7 +89,7 @@
8389
<plugin>
8490
<groupId>org.apache.maven.plugins</groupId>
8591
<artifactId>maven-javadoc-plugin</artifactId>
86-
<version>2.10.4</version>
92+
<version>${maven-javadoc-plugin.version}</version>
8793
<configuration>
8894
<failOnError>false</failOnError>
8995
</configuration>

soot-infoflow/pom.xml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,15 @@
4242
<maven.compiler.source>1.8</maven.compiler.source>
4343
<maven.compiler.target>1.8</maven.compiler.target>
4444
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
45+
46+
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
4547
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
4648
<maven-nexus-staging-plugin.version>1.6.8</maven-nexus-staging-plugin.version>
47-
<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
48-
<maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version>
49-
<maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>
50-
<maven-surefire-plugin.version>2.20.1</maven-surefire-plugin.version>
51-
<maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
49+
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
50+
<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
51+
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
52+
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
53+
<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
5254
</properties>
5355

5456
<build>
@@ -61,7 +63,7 @@
6163
<plugin>
6264
<groupId>org.apache.maven.plugins</groupId>
6365
<artifactId>maven-compiler-plugin</artifactId>
64-
<version>3.2</version>
66+
<version>${maven-compiler-plugin.version}</version>
6567
</plugin>
6668

6769
<plugin>
@@ -143,7 +145,7 @@
143145
<dependency>
144146
<groupId>de.upb.cs.swt</groupId>
145147
<artifactId>heros</artifactId>
146-
<version>1.2.0-SNAPSHOT</version>
148+
<version>1.2.1</version>
147149
</dependency>
148150
<dependency>
149151
<groupId>org.soot-oss</groupId>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package soot.jimple.infoflow.test.collect;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import org.junit.Test;
6+
7+
import soot.jimple.infoflow.collect.ConcurrentCountingMap;
8+
9+
public class ConcurrentCountingMapTest {
10+
11+
@Test
12+
public void keySetTest() {
13+
ConcurrentCountingMap<String> map = new ConcurrentCountingMap<>();
14+
map.increment("Hello");
15+
map.increment("World");
16+
for (String k : map.keySet())
17+
assertEquals(new Integer(1), map.get(k));
18+
}
19+
20+
}

0 commit comments

Comments
 (0)