{"record":{"id":"3ca4dfefd1b8871b","repo":"theforeman/foreman","slug":"invalid-subnet-mask-mask","errorCode":null,"errorMessage":"Invalid Subnet Mask #{mask}","messagePattern":"Invalid Subnet Mask #(.+?)","errorType":"validation","errorClass":"Net::Validations::Error","httpStatus":null,"severity":"error","filePath":"app/lib/net/validations.rb","lineNumber":52,"sourceCode":"      return false unless ip.present?\n      IPAddr.new(ip, Socket::AF_INET6) rescue return false\n      true\n    end\n\n    # validates an IPv6 address and raises an error\n    def self.validate_ip6!(ip)\n      raise Error, \"Invalid IPv6 Address #{ip}\" unless validate_ip6(ip)\n      ip\n    end\n\n    # validates a network mask\n    def self.validate_mask(mask)\n      MASK_REGEXP.match?(mask)\n    end\n\n    # validates a network mask and raises an error\n    def self.validate_mask!(mask)\n      raise Error, \"Invalid Subnet Mask #{mask}\" unless validate_mask(mask)\n      mask\n    end\n\n    # validates the mac\n    def self.validate_mac(mac)\n      return false if mac.nil?\n\n      case mac.size\n      when 17\n        return true if (mac =~ MAC_REGEXP)\n      when 59\n        return true if (mac =~ MAC_REGEXP_64BIT)\n      end\n\n      false\n    end\n\n    def self.multicast_mac?(mac)","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/theforeman/foreman/blob/6b05625475cfe6aac31a88f8c8ee6e62e4efe620/app/lib/net/validations.rb#L34-L70","documentation":"Error \"Invalid Subnet Mask #{mask}\" thrown in theforeman/foreman.","triggerScenarios":"Thrown at app/lib/net/validations.rb:52 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6b05625475cfe6aac31a88f8c8ee6e62e4efe620","analyzedAt":"2026-08-23T17:46:34.094Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}