14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/brakeman/checks/check_divide_by_zero.rb', line 14
def check_division result
return unless original? result
call = result[:call]
denominator = call.first_arg
if number? denominator and denominator.value == 0
numerator = call.target
if number? numerator
if numerator.value.is_a? Float
return else
confidence = :medium
end
else
confidence = :weak
end
warn :result => result,
:warning_type => "Divide by Zero",
:warning_code => :divide_by_zero,
:message => "Potential division by zero",
:confidence => confidence,
:user_input => denominator,
:cwe_id => [369]
end
end
|