Class: InvalidIPAddrBindingRule

Inherits:
Rule
  • Object
show all
Defined in:
lib/rules/invalid_ip_addr_binding_rule.rb

Class Method Summary collapse

Methods inherited from Rule

filter_resources, filter_tokens, filter_variables, filter_whitelist, get_comments, get_string_tokens, get_tokens, inherited

Class Method Details

.AnalyzeTokens(tokens) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rules/invalid_ip_addr_binding_rule.rb', line 12

def self.AnalyzeTokens(tokens)
  result = []

  ftokens = get_tokens(tokens,"0.0.0.0")
  ftokens.each do |token|
    token_value = token.value.downcase
    token_type = token.type.to_s
    if ["EQUALS", "FARROW"].include? token.prev_code_token.type.to_s
      prev_token = token.prev_code_token
      left_side = prev_token.prev_code_token
      if token_value =~ @ip_addr_bin_regex_conf.value and ["VARIABLE", "NAME"].include? left_side.type.to_s
        result.append(Sin.new(SinType::InvalidIPAddrBinding, left_side.line, left_side.column, token.line, token.column+token_value.length))
      end
    end
  end

  return result
end

.filter_tokens_per_value(tokens, token) ⇒ Object



31
32
33
34
35
36
# File 'lib/rules/invalid_ip_addr_binding_rule.rb', line 31

def self.filter_tokens_per_value(tokens, token)
  ftokens=tokens.find_all do |hash|
    (hash.type.to_s == 'SSTRING' || hash.type.to_s == 'STRING') and hash.value.downcase.include? token
  end
  return ftokens
end