Sha256: 56f173b196e29a85b0e07add86d489cbe44b045dbe975ca8772886ee2125af1c
Contents?: true
Size: 994 Bytes
Versions: 120
Compression:
Stored size: 994 Bytes
Contents
require 'brakeman/checks/base_check' class Brakeman::CheckDivideByZero < Brakeman::BaseCheck Brakeman::Checks.add_optional self @description = "Warns on potential division by zero" def run_check tracker.find_call(:method => :"/").each do |result| check_division result end end 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 # 0.0 / 0 is NaN and 1.0 / 0 is Infinity 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 end end end
Version data entries
120 entries across 106 versions & 4 rubygems