Skip to content

Commit 4246965

Browse files
authored
Merge pull request #374 from flankerhqd/patch-4
Add support for more fragment transaction methods
2 parents 37ad1c0 + eb9b39d commit 4246965

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ protected void analyzeMethodForFragmentTransaction(SootClass lifecycleElement, S
414414
Stmt stmt = (Stmt) u;
415415
if (stmt.containsInvokeExpr()) {
416416
final String methodName = stmt.getInvokeExpr().getMethod().getName();
417-
if (methodName.equals("getFragmentManager"))
417+
if (methodName.equals("getFragmentManager") || methodName.equals("getSupportFragmentManager"))
418418
isFragmentManager = true;
419419
else if (methodName.equals("beginTransaction"))
420420
isFragmentTransaction = true;
@@ -458,6 +458,8 @@ else if (methodName.equals("inflate") && stmt.getInvokeExpr().getArgCount() > 1)
458458
// Is this a fragment?
459459
if (br.getType() instanceof RefType) {
460460
RefType rt = (RefType) br.getType();
461+
if (br instanceof ClassConstant)
462+
rt = (RefType) ((ClassConstant) br).toSootType();
461463

462464
boolean addFragment = scFragment != null
463465
&& Scene.v().getFastHierarchy().canStoreType(rt, scFragment.getType());

0 commit comments

Comments
 (0)