File tree 2 files changed +22
-0
lines changed
ruby/ql/test/library-tests/dataflow/call-sensitivity
2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change 1
1
testFailures
2
+ | call_sensitivity.rb:200:10:200:28 | # $ hasValueFlow=37 | Missing result:hasValueFlow=37 |
2
3
edges
3
4
| call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) |
4
5
| call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x |
@@ -212,6 +213,7 @@ mayBenefitFromCallContext
212
213
| call_sensitivity.rb:149:5:149:28 | call to singleton_method2 |
213
214
| call_sensitivity.rb:153:5:153:35 | call to singleton_method3 |
214
215
| call_sensitivity.rb:175:3:175:12 | call to new |
216
+ | call_sensitivity.rb:194:3:196:5 | call to invoke_block1 |
215
217
viableImplInCallContext
216
218
| call_sensitivity.rb:51:5:51:10 | call to sink | call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:5:1:7:3 | sink |
217
219
| call_sensitivity.rb:51:5:51:10 | call to sink | call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:5:1:7:3 | sink |
@@ -267,3 +269,5 @@ viableImplInCallContext
267
269
| call_sensitivity.rb:153:5:153:35 | call to singleton_method3 | call_sensitivity.rb:171:1:171:34 | call to call_singleton_method3 | call_sensitivity.rb:96:3:98:5 | singleton_method3 |
268
270
| call_sensitivity.rb:175:3:175:12 | call to new | call_sensitivity.rb:178:1:178:20 | call to create | call_sensitivity.rb:104:3:107:5 | initialize |
269
271
| call_sensitivity.rb:175:3:175:12 | call to new | call_sensitivity.rb:179:1:179:20 | call to create | call_sensitivity.rb:156:3:158:5 | initialize |
272
+ | call_sensitivity.rb:194:3:196:5 | call to invoke_block1 | call_sensitivity.rb:199:1:201:3 | call to invoke_block2 | call_sensitivity.rb:189:1:191:3 | invoke_block1 |
273
+ | call_sensitivity.rb:194:3:196:5 | call to invoke_block1 | call_sensitivity.rb:203:1:205:3 | call to invoke_block2 | call_sensitivity.rb:189:1:191:3 | invoke_block1 |
Original file line number Diff line number Diff line change @@ -185,3 +185,21 @@ def method1 x
185
185
end
186
186
187
187
c = C . new ( taint 32 )
188
+
189
+ def invoke_block1 x
190
+ yield x
191
+ end
192
+
193
+ def invoke_block2 x
194
+ invoke_block1 x do |x |
195
+ yield x
196
+ end
197
+ end
198
+
199
+ invoke_block2 ( taint 37 ) do |x |
200
+ sink x # $ hasValueFlow=37
201
+ end
202
+
203
+ invoke_block2 "safe" do |x |
204
+ sink x
205
+ end
You can’t perform that action at this time.
0 commit comments