Skip to content

Commit 3c5c849

Browse files
luchua-bcsmowton
authored andcommitted
Refine the query to check intents coming from outside only
1 parent f86413a commit 3c5c849

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

java/ql/src/semmle/code/java/dataflow/FlowSources.qll

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,9 +342,23 @@ private class AndroidIntentExtraSource extends RemoteFlowSource {
342342
AndroidIntentExtraSource() {
343343
exists(MethodAccess ma |
344344
ma instanceof IntentGetExtraMethodAccess and
345-
(
346-
this.asExpr().(VarAccess).getVariable().getAnAssignedValue() = ma or
347-
ma.getQualifier() = this.asExpr()
345+
this.asExpr() = ma and
346+
exists(AndroidIntentInput inode |
347+
(
348+
ma.getQualifier() = inode.asExpr() or // extra from intent
349+
ma.getQualifier() = inode.asParameter().getAnAccess()
350+
)
351+
or
352+
exists(
353+
MethodAccess ema // extra from extras bundle of intent
354+
|
355+
ema.getMethod().hasName("getExtras") and
356+
ma.getQualifier() = ema and
357+
(
358+
ema.getQualifier() = inode.asExpr() or
359+
ema.getQualifier() = inode.asParameter().getAnAccess()
360+
)
361+
)
348362
)
349363
)
350364
}

0 commit comments

Comments
 (0)