Skip to content

Commit 55be4c3

Browse files
committed
Ruby: Add data flow call sensitivity test
1 parent 1034c3d commit 55be4c3

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected

+4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
testFailures
2+
| call_sensitivity.rb:200:10:200:28 | # $ hasValueFlow=37 | Missing result:hasValueFlow=37 |
23
edges
34
| call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) |
45
| call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x |
@@ -212,6 +213,7 @@ mayBenefitFromCallContext
212213
| call_sensitivity.rb:149:5:149:28 | call to singleton_method2 |
213214
| call_sensitivity.rb:153:5:153:35 | call to singleton_method3 |
214215
| call_sensitivity.rb:175:3:175:12 | call to new |
216+
| call_sensitivity.rb:194:3:196:5 | call to invoke_block1 |
215217
viableImplInCallContext
216218
| 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 |
217219
| 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
267269
| 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 |
268270
| 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 |
269271
| 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 |

ruby/ql/test/library-tests/dataflow/call-sensitivity/call_sensitivity.rb

+18
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,21 @@ def method1 x
185185
end
186186

187187
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

0 commit comments

Comments
 (0)