From 8ad2f47d4e9712163e98c05bd1a3b9891b075642 Mon Sep 17 00:00:00 2001 From: Lewis Diamond Date: Sun, 10 Feb 2019 10:52:18 -0500 Subject: Fix panic when encountering param content with new line --- src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 51ea515..ec3905b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -815,7 +815,7 @@ fn parse_param_content(content: &str) -> ParamContent { kv.find('=').map(|idx| { let key = kv[0..idx].trim().to_lowercase(); let mut value = kv[idx + 1..].trim(); - if value.starts_with('"') && value.ends_with('"') { + if value.starts_with('"') && value.ends_with('"') && value.len() > 1 { value = &value[1..value.len() - 1]; } (key, value.to_string()) @@ -1208,4 +1208,10 @@ mod tests { let test = "\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}\u{FFFD}"; assert!(is_boundary(test, Some(8))); } + + #[test] + fn test_dont_panic_for_value_with_new_lines() { + let parsed = parse_param_content(r#"Content-Type: application/octet-stream; name=""#); + assert_eq!(parsed.params["name"], "\""); + } } -- cgit v1.2.3