diff --git a/plugins/Alias.py b/plugins/Alias.py index 2845dd9a4..1312cb5ae 100644 --- a/plugins/Alias.py +++ b/plugins/Alias.py @@ -185,7 +185,10 @@ class Alias(callbacks.Privmsg): irc.error(msg, 'There is no such alias.') unfreeze = privmsgs.checkCapability(unfreeze, 'admin') + _invalidCharsRe = re.compile(r'[\[\]\s]') def addAlias(self, irc, name, alias, freeze=False): + if self._invalidCharsRe.search(name): + raise AliasError, 'Names cannot contain spaces or square brackets.' realName = callbacks.canonicalName(name) if name != realName: raise AliasError,'That name isn\'t valid. Try %r instead'%realName diff --git a/test/test_Alias.py b/test/test_Alias.py index c02af884f..ea0ba2c2d 100644 --- a/test/test_Alias.py +++ b/test/test_Alias.py @@ -96,6 +96,8 @@ class AliasTestCase(PluginTestCase, PluginDocumentation): def testNonCanonicalName(self): self.assertError('alias FOO foo') + self.assertError('alias [] foo') + self.assertError('alias "foo bar" foo') def testNotCannotNestRaised(self): self.assertNotError('alias mytell "tell $channel $1"')