From 4975b21c42a045ed1eca538fc8f105f7b71deb36 Mon Sep 17 00:00:00 2001 From: mdecimus Date: Sun, 19 Jan 2025 12:00:37 +0100 Subject: [PATCH] Sieve script import case insensitiviy (fixes #962) --- crates/email/src/sieve.rs | 3 ++- crates/smtp/src/scripts/event_loop.rs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/email/src/sieve.rs b/crates/email/src/sieve.rs index f2731fd1..d81babf8 100644 --- a/crates/email/src/sieve.rs +++ b/crates/email/src/sieve.rs @@ -179,7 +179,8 @@ impl SieveScriptIngest for Server { } } sieve::Script::Global(name_) => { - if let Some(script) = self.get_untrusted_sieve_script(name_, session_id) + if let Some(script) = + self.get_untrusted_sieve_script(&name_.to_lowercase(), session_id) { input = Input::script(name, script.clone()); } else { diff --git a/crates/smtp/src/scripts/event_loop.rs b/crates/smtp/src/scripts/event_loop.rs index c8e900e6..bd2c856b 100644 --- a/crates/smtp/src/scripts/event_loop.rs +++ b/crates/smtp/src/scripts/event_loop.rs @@ -78,7 +78,8 @@ impl RunScript for Server { match result { Ok(event) => match event { Event::IncludeScript { name, optional } => { - if let Some(script) = self.core.sieve.trusted_scripts.get(name.as_str()) { + let name_ = name.as_str().to_lowercase(); + if let Some(script) = self.core.sieve.trusted_scripts.get(&name_) { input = Input::script(name, script.clone()); } else if optional { input = false.into(); @@ -87,7 +88,7 @@ impl RunScript for Server { Sieve(SieveEvent::ScriptNotFound), Id = script_id.clone(), SpanId = session_id, - Details = name.as_str().to_string(), + Details = name_, ); break; }