diff options
author | ThibG <thib@sitedethib.com> | 2020-06-01 03:47:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-01 03:47:20 +0200 |
commit | 51ff679b9deb559ddc53cdfa6265b996f6c7fd5e (patch) | |
tree | 5e2dc5a5ba4f0073b2b0b2a9c890909b004e36e5 /app/models/domain_block.rb | |
parent | eeddb1a624c0e743e3e7b6d35104adfb10f2a747 (diff) |
Fix admin page crashing when trying to block an invalid domain name (#13884)
* Fix admin page crashing when trying to block an invalid domain name Fixes #13880 * Fix trailing and leading spaces not being properly stripped for domain blocks
Diffstat (limited to 'app/models/domain_block.rb')
-rw-r--r-- | app/models/domain_block.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index f0a5bd296..2b18e01fa 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -50,11 +50,13 @@ class DomainBlock < ApplicationRecord def rule_for(domain) return if domain.blank? - uri = Addressable::URI.new.tap { |u| u.host = domain.gsub(/[\/]/, '') } + uri = Addressable::URI.new.tap { |u| u.host = domain.strip.gsub(/[\/]/, '') } segments = uri.normalized_host.split('.') variants = segments.map.with_index { |_, i| segments[i..-1].join('.') } where(domain: variants).order(Arel.sql('char_length(domain) desc')).first + rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError + nil end end |