Sha256: febdd5a372440cea25189b742c750f78a33da6b9821181330045c539cb9bf337
Contents?: true
Size: 958 Bytes
Versions: 3
Compression:
Stored size: 958 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 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
3 entries across 3 versions & 3 rubygems
Version | Path |
---|---|
brakeman-4.1.0 | lib/brakeman/checks/check_divide_by_zero.rb |
brakeman-lib-4.1.0 | lib/brakeman/checks/check_divide_by_zero.rb |
brakeman-min-4.1.0 | lib/brakeman/checks/check_divide_by_zero.rb |