From f80e2cd059de032153a0e24acd2bb8395992cd22 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 11 Sep 2025 06:14:44 +0000 Subject: fix(meta): Better comply with RFC 2045 --- src/meta.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/meta.rs') diff --git a/src/meta.rs b/src/meta.rs index d50af2d..453bbb6 100644 --- a/src/meta.rs +++ b/src/meta.rs @@ -78,13 +78,15 @@ impl Meta { let mut parameters = HashMap::new(); for parameter in metas { - let key_value = - parameter.trim_start().split_at(parameter.find('=').unwrap_or(0)); + let trimmed = parameter.trim_start(); - parameters.insert( - key_value.0.to_string().replace('=', ""), - key_value.1.to_string(), - ); + // Only parse parameters containing '=' as those without are malformed + // according to RFC 2045 + if let Some(equal_pos) = trimmed.find('=') { + let (key, value) = trimmed.split_at(equal_pos); + + parameters.insert(key.to_string(), value[1..].to_string()); + } } Self { mime, parameters } -- cgit v1.2.3