]> Untitled Git - lemmy.git/commitdiff
Fix password length check (#2536)
authorNutomic <me@nutomic.com>
Sat, 5 Nov 2022 00:56:38 +0000 (00:56 +0000)
committerGitHub <noreply@github.com>
Sat, 5 Nov 2022 00:56:38 +0000 (20:56 -0400)
crates/api_common/src/utils.rs

index 6b0b011a9ec6054c43864d8aed3db16a2d0ca4b8..8c341c44b68459f486d560a6dc6db81f6d199794 100644 (file)
@@ -314,7 +314,7 @@ pub async fn build_federated_instances(
 
 /// Checks the password length
 pub fn password_length_check(pass: &str) -> Result<(), LemmyError> {
-  if !(10..=60).contains(&pass.len()) {
+  if !(10..=60).contains(&pass.chars().count()) {
     Err(LemmyError::from_message("invalid_password"))
   } else {
     Ok(())
@@ -791,3 +791,17 @@ pub fn listing_type_with_site_default(
     &local_site.default_post_listing_type,
   )?))
 }
+
+#[cfg(test)]
+mod tests {
+  use crate::utils::password_length_check;
+
+  #[test]
+  #[rustfmt::skip]
+  fn password_length() {
+    assert!(password_length_check("Õ¼¾°3yË,o¸ãtÌÈú|ÇÁÙAøüÒI©·¤(T]/ð>æºWæ[C¤bªWöaÃÎñ·{=û³&§½K/c").is_ok());
+    assert!(password_length_check("1234567890").is_ok());
+    assert!(password_length_check("short").is_err());
+    assert!(password_length_check("looooooooooooooooooooooooooooooooooooooooooooooooooooooooooong").is_err());
+  }
+}