diff --git a/irc/metadata.go b/irc/metadata.go index a254f280..edb4ce1c 100644 --- a/irc/metadata.go +++ b/irc/metadata.go @@ -106,7 +106,7 @@ func syncChannelMetadata(server *Server, rb *ResponseBuffer, channel *Channel) { } } -var validMetadataKeyRegexp = regexp.MustCompile("^[A-Za-z0-9_./-]+$") +var validMetadataKeyRegexp = regexp.MustCompile("^[a-z0-9_./-]+$") func metadataKeyIsEvil(key string) bool { return !validMetadataKeyRegexp.MatchString(key) diff --git a/irc/metadata_test.go b/irc/metadata_test.go index 91de213a..c90dbcec 100644 --- a/irc/metadata_test.go +++ b/irc/metadata_test.go @@ -7,9 +7,12 @@ func TestKeyCheck(t *testing.T) { input string isEvil bool }{ - {"ImNormal", false}, + {"ImNormalButIHaveCaps", true}, + {"imnormalandidonthavecaps", false}, + {"ergo.chat/vendor-extension", false}, {"", true}, {":imevil", true}, + {"im:evil", true}, {"key£with$not%allowed^chars", true}, {"key.thats_completely/normal-and.fine", false}, }