From: Jelmer Vernooij Date: Sun, 5 Apr 2009 21:17:43 +0000 (+0200) Subject: Make valid_netbios_name() check a bit stricter. X-Git-Tag: tdb-1.1.5~1031^2~99 X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=commitdiff_plain;h=b1db78c595ca7b171eeb141428e963431163cddb Make valid_netbios_name() check a bit stricter. --- diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py index c5827b96e0e..3ecb758595e 100644 --- a/source4/scripting/python/samba/__init__.py +++ b/source4/scripting/python/samba/__init__.py @@ -233,10 +233,12 @@ def check_all_substituted(text): def valid_netbios_name(name): """Check whether a name is valid as a NetBIOS name. """ - # FIXME: There are probably more constraints here. - # crh has a paragraph on this in his book (1.4.1.1) + # See crh's book (1.4.1.1) if len(name) > 15: return False + for x in name: + if not x.isalnum() and not x in " !#$%&'()-.@^_{}~": + return False return True version = glue.version diff --git a/source4/scripting/python/samba/tests/__init__.py b/source4/scripting/python/samba/tests/__init__.py index b342b93c498..524c3a3b914 100644 --- a/source4/scripting/python/samba/tests/__init__.py +++ b/source4/scripting/python/samba/tests/__init__.py @@ -96,3 +96,15 @@ class RpcInterfaceTestCase(unittest.TestCase): def get_credentials(self): return cmdline_credentials + + +class ValidNetbiosNameTests(unittest.TestCase): + + def test_valid(self): + self.assertTrue(valid_netbios_name("FOO")) + + def test_too_long(self): + self.assertFalse(valid_netbios_name("FOO"*10)) + + def test_invalid_characters(self): + self.assertFalse(valid_netbios_name("()BLA"))