aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-09-11 06:14:44 +0000
committerFuwn <[email protected]>2025-09-11 06:14:44 +0000
commitf80e2cd059de032153a0e24acd2bb8395992cd22 (patch)
tree637d63c87d5010aab3c0160f64ce320919a68e0c /src
parentfix(request): Handle invalid URLs (diff)
downloadgerm-f80e2cd059de032153a0e24acd2bb8395992cd22.tar.xz
germ-f80e2cd059de032153a0e24acd2bb8395992cd22.zip
fix(meta): Better comply with RFC 2045
Diffstat (limited to 'src')
-rw-r--r--src/meta.rs14
1 files changed, 8 insertions, 6 deletions
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 }