From 131d4ee7ae84e74bc6fde6969ad0edbdd697eaa0 Mon Sep 17 00:00:00 2001 From: overtrue Date: Thu, 9 Apr 2026 18:04:15 +0800 Subject: [PATCH] test(event): reject slash-only bucket path --- crates/cli/src/commands/event.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/crates/cli/src/commands/event.rs b/crates/cli/src/commands/event.rs index a0c9bb2..bc5077e 100644 --- a/crates/cli/src/commands/event.rs +++ b/crates/cli/src/commands/event.rs @@ -382,10 +382,12 @@ fn parse_bucket_path(path: &str) -> Result<(String, String), String> { return Err("Bucket path must be in format alias/bucket".to_string()); } - Ok(( - parts[0].to_string(), - parts[1].trim_end_matches('/').to_string(), - )) + let bucket = parts[1].trim_end_matches('/'); + if bucket.is_empty() { + return Err("Bucket path must be in format alias/bucket".to_string()); + } + + Ok((parts[0].to_string(), bucket.to_string())) } fn parse_event_list(values: &[String]) -> Vec { @@ -477,6 +479,7 @@ mod tests { assert!(parse_bucket_path("").is_err()); assert!(parse_bucket_path("local").is_err()); assert!(parse_bucket_path("/bucket").is_err()); + assert!(parse_bucket_path("local///").is_err()); } #[test]