@@ -30,8 +30,8 @@ private class SendBroadcastMethodAccess extends MethodAccess {
30
30
}
31
31
}
32
32
33
- private predicate isNullArg ( Expr ex ) {
34
- exists ( DataFlow:: Node src , DataFlow:: Node sink , SendBroadcastMethodAccess ma |
33
+ private predicate maybeNullArg ( Expr ex ) {
34
+ exists ( DataFlow:: Node src , DataFlow:: Node sink , MethodAccess ma |
35
35
ex = ma .getAnArgument ( ) and
36
36
sink .asExpr ( ) = ex and
37
37
src .asExpr ( ) instanceof NullLiteral
@@ -40,8 +40,8 @@ private predicate isNullArg(Expr ex) {
40
40
)
41
41
}
42
42
43
- private predicate isEmptyArrayArg ( Expr ex ) {
44
- exists ( DataFlow:: Node src , DataFlow:: Node sink , SendBroadcastMethodAccess ma |
43
+ private predicate maybeEmptyArrayArg ( Expr ex ) {
44
+ exists ( DataFlow:: Node src , DataFlow:: Node sink , MethodAccess ma |
45
45
ex = ma .getAnArgument ( ) and
46
46
sink .asExpr ( ) = ex and
47
47
src .asExpr ( ) .( ArrayCreationExpr ) .getFirstDimensionSize ( ) = 0
@@ -63,7 +63,7 @@ private predicate isSensitiveBroadcastSink(DataFlow::Node sink) {
63
63
ma .getNumArgument ( ) = 1
64
64
or
65
65
// sendBroadcast(Intent intent, String receiverPermission)
66
- isNullArg ( ma .getArgument ( 1 ) )
66
+ maybeNullArg ( ma .getArgument ( 1 ) )
67
67
)
68
68
or
69
69
name = "sendBroadcastAsUser" and
@@ -72,30 +72,30 @@ private predicate isSensitiveBroadcastSink(DataFlow::Node sink) {
72
72
ma .getNumArgument ( ) = 2
73
73
or
74
74
// sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission)
75
- isNullArg ( ma .getArgument ( 2 ) )
75
+ maybeNullArg ( ma .getArgument ( 2 ) )
76
76
)
77
77
or
78
78
// sendBroadcastWithMultiplePermissions(Intent intent, String[] receiverPermissions)
79
79
name = "sendBroadcastWithMultiplePermissions" and
80
- isEmptyArrayArg ( ma .getArgument ( 1 ) )
80
+ maybeEmptyArrayArg ( ma .getArgument ( 1 ) )
81
81
or
82
82
// Method calls of `sendOrderedBroadcast` whose second argument is always `receiverPermission`
83
83
name = "sendOrderedBroadcast" and
84
84
(
85
85
// sendOrderedBroadcast(Intent intent, String receiverPermission)
86
86
// sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
87
- isNullArg ( ma .getArgument ( 1 ) ) and
87
+ maybeNullArg ( ma .getArgument ( 1 ) ) and
88
88
ma .getNumArgument ( ) = [ 2 , 7 ]
89
89
or
90
90
// sendOrderedBroadcast(Intent intent, String receiverPermission, String receiverAppOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
91
- isNullArg ( ma .getArgument ( 1 ) ) and
92
- isNullArg ( ma .getArgument ( 2 ) ) and
91
+ maybeNullArg ( ma .getArgument ( 1 ) ) and
92
+ maybeNullArg ( ma .getArgument ( 2 ) ) and
93
93
ma .getNumArgument ( ) = 8
94
94
)
95
95
or
96
96
// sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
97
97
name = "sendOrderedBroadcastAsUser" and
98
- isNullArg ( ma .getArgument ( 2 ) )
98
+ maybeNullArg ( ma .getArgument ( 2 ) )
99
99
or
100
100
// sendStickyBroadcast(Intent intent)
101
101
// sendStickyBroadcast(Intent intent, Bundle options)
@@ -127,10 +127,10 @@ predicate isCleanIntent(Expr intent) {
127
127
cc .getNumArgument ( ) > 1 and
128
128
(
129
129
cc .getArgument ( 0 ) .getType ( ) instanceof TypeContext and
130
- not isNullArg ( cc .getArgument ( 1 ) )
130
+ not maybeNullArg ( cc .getArgument ( 1 ) )
131
131
or
132
132
cc .getArgument ( 2 ) .getType ( ) instanceof TypeContext and
133
- not isNullArg ( cc .getArgument ( 3 ) )
133
+ not maybeNullArg ( cc .getArgument ( 3 ) )
134
134
)
135
135
)
136
136
)
0 commit comments