Skip to content

Commit

Permalink
BUG: FQDN: handle leading dots
Browse files Browse the repository at this point in the history
fixes #1022
fixes #1030
  • Loading branch information
Sebastian Wagner committed Jul 6, 2017
1 parent 4efedf4 commit c24bb06
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ CHANGELOG
1.1.0
-----

1.0.0.rc2 Release candidate
---------------------------
### Harmonization
- leading dots in FQDNs are rejected and removed in sanitation (#1022, #1030)

1.0.0.rc1 Release candidate
---------------------------
### Core
Expand Down
4 changes: 2 additions & 2 deletions intelmq/lib/harmonization.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ def is_valid(value, sanitize=False):
if not GenericType().is_valid(value):
return False

if value.rstrip('.') != value or value != value.lower():
if value.strip('.') != value or value != value.lower():
return False

if IPAddress().is_valid(value):
Expand All @@ -369,7 +369,7 @@ def is_valid(value, sanitize=False):

@staticmethod
def sanitize(value):
value = value.rstrip('.')
value = value.strip('.')
if value:
return value.encode('idna').decode().lower()

Expand Down
3 changes: 3 additions & 0 deletions intelmq/tests/lib/test_harmonization.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ def test_fqdn_invalid(self):
self.assertFalse(harmonization.FQDN.is_valid('ö1.at'))
self.assertFalse(harmonization.FQDN.is_valid('n/a'))
self.assertFalse(harmonization.FQDN.is_valid('.'))
self.assertFalse(harmonization.FQDN.is_valid('.example.com'))

def test_fqdn_sanitize(self):
""" Test FQDN.sanitize with valid arguments. """
Expand All @@ -245,6 +246,8 @@ def test_fqdn_sanitize(self):
self.assertTrue(harmonization.FQDN.is_valid('212.156.101.43.00-ebgp-atakoy1-k.301-fra-'
'col-1.statik.turktelekom.com.tr',
sanitize=True))
self.assertTrue(harmonization.FQDN.is_valid('.example.com',
sanitize=True))

def test_fqdn_sanitize_invalid(self):
"""Test FQDN.sanitize with invalid arguments. """
Expand Down

0 comments on commit c24bb06

Please sign in to comment.