This is called in Repo.do_commit and Repo._write_reflog.
@@ -235,6 +235,8 @@ def check_user_identity(identity):
raise InvalidUserIdentity(identity) from exc
if b">" not in snd:
raise InvalidUserIdentity(identity)
+ if b'\0' in identity or b'\n' in identity:
+ raise InvalidUserIdentity(identity)
def parse_graftpoints(
@@ -1487,3 +1487,9 @@ class CheckUserIdentityTests(TestCase):
self.assertRaises(
InvalidUserIdentity, check_user_identity, b"Fullname >order<>"
)
+ self.assertRaises(
+ InvalidUserIdentity, check_user_identity, b'Contains\0null byte <>'
+ )
+ InvalidUserIdentity, check_user_identity, b'Contains\nnewline byte <>'