protover.c accepts arbitrary bytes in protocol names
dir-spec.txt defines a protocol name as a Keyword, and strictly limits what character set is allowed in a Keyword:
Keyword = KeywordChar+
KeywordChar ::= 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '-'
But "Foo_Bar=1", ",,,=1", and arbitrary Unicode strings like "Risqu\u00e9=1" are accepted. Bytes that aren't even valid Unicode like "\xc1=1" are also fine, as long as no bytes are the null byte, =, or the space character.
Trac:
Username: cyberpunks