Files
codeql/ruby/ql/test/library-tests/dataflow/call-sensitivity/call_sensitivity.rb
2021-10-15 11:47:28 +02:00

39 lines
707 B
Ruby

def sink s
puts s
end
sink "taint"
def yielder x
yield x
end
yielder "no taint" { |x| sink x } # no flow
yielder "taint" { |x| puts x } # no flow
yielder "taint" { |x| sink x } # flow
def apply_lambda (lambda, x)
lambda.call(x)
end
my_lambda = -> (x) { sink x }
apply_lambda(my_lambda, "no taint") # no flow
my_lambda = -> (x) { puts x }
apply_lambda(my_lambda, "taint") # no flow
my_lambda = -> (x) { sink x }
apply_lambda(my_lambda, "taint") # flow
my_lambda = lambda { |x| sink x }
apply_lambda(my_lambda, "no taint") # no flow
my_lambda = lambda { |x| puts x }
apply_lambda(my_lambda, "taint") # no flow
my_lambda = lambda { |x| sink x }
apply_lambda(my_lambda, "taint") # flow