]> Untitled Git - lemmy.git/commitdiff
Don't allow zero-space char in display name. Fixes #1317
authorDessalines <tyhou13@gmx.com>
Thu, 1 Apr 2021 18:09:53 +0000 (14:09 -0400)
committerDessalines <tyhou13@gmx.com>
Thu, 1 Apr 2021 18:09:53 +0000 (14:09 -0400)
crates/utils/src/test.rs
crates/utils/src/utils.rs

index 04abd4b7debd93efb91c46a2a0ef523eb8bbeed8..754aa8c3a8befda82b79dcbc424979233c274821 100644 (file)
@@ -32,6 +32,12 @@ fn test_valid_register_username() {
 fn test_valid_display_name() {
   assert!(is_valid_display_name("hello @there"));
   assert!(!is_valid_display_name("@hello there"));
+
+  // Make sure zero-space with an @ doesn't work
+  assert!(!is_valid_display_name(&format!(
+    "{}@my name is",
+    '\u{200b}'
+  )));
 }
 
 #[test]
index 931565b6d6353e104437a7123d69e69b00d383ef..732ac2c8d85c5104d811e6eaf3e773e9d190dd3b 100644 (file)
@@ -109,7 +109,10 @@ pub fn is_valid_username(name: &str) -> bool {
 
 // Can't do a regex here, reverse lookarounds not supported
 pub fn is_valid_display_name(name: &str) -> bool {
-  !name.starts_with('@') && name.chars().count() >= 3 && name.chars().count() <= 20
+  !name.starts_with('@')
+    && !name.starts_with('\u{200b}')
+    && name.chars().count() >= 3
+    && name.chars().count() <= 20
 }
 
 pub fn is_valid_community_name(name: &str) -> bool {