From 224ddcb4b1e54f73c96934a1295a81ee85dd2720 Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Thu, 23 Apr 2026 01:58:41 +0900 Subject: [PATCH 1/2] validate.rs: remove unreachable!() --- src/shadow-core/src/validate.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/shadow-core/src/validate.rs b/src/shadow-core/src/validate.rs index 05f7244..0fa93a6 100644 --- a/src/shadow-core/src/validate.rs +++ b/src/shadow-core/src/validate.rs @@ -31,10 +31,6 @@ const MAX_USERNAME_LEN: usize = 32; /// /// Returns `ShadowError::Validation` if the username violates any rule. pub fn validate_username(name: &str) -> Result<(), ShadowError> { - if name.is_empty() { - return Err(ShadowError::Validation("username must not be empty".into())); - } - if name.len() > MAX_USERNAME_LEN { return Err(ShadowError::Validation( format!("username '{name}' exceeds maximum length of {MAX_USERNAME_LEN} characters") @@ -45,7 +41,7 @@ pub fn validate_username(name: &str) -> Result<(), ShadowError> { let mut chars = name.chars(); // Name is guaranteed non-empty by the check above. let Some(first) = chars.next() else { - unreachable!("empty name already rejected"); + return Err(ShadowError::Validation("username must not be empty".into())); }; if !first.is_ascii_lowercase() && first != '_' { From d50a3b65c0e37ba16442c63f3d64faea30010843 Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Thu, 23 Apr 2026 16:08:30 +0900 Subject: [PATCH 2/2] validate.rs: Fix comment Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/shadow-core/src/validate.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shadow-core/src/validate.rs b/src/shadow-core/src/validate.rs index 0fa93a6..4207ca0 100644 --- a/src/shadow-core/src/validate.rs +++ b/src/shadow-core/src/validate.rs @@ -39,7 +39,7 @@ pub fn validate_username(name: &str) -> Result<(), ShadowError> { } let mut chars = name.chars(); - // Name is guaranteed non-empty by the check above. + // Reject empty names by requiring a first character here. let Some(first) = chars.next() else { return Err(ShadowError::Validation("username must not be empty".into())); };