From 0bdd1b7dc282d67aa0638b83651cb21c163e1581 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Fri, 4 Dec 2020 11:42:14 +0100 Subject: [PATCH] avoid unwrap() when falling back to latin1 charset --- src/mimeparser.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/mimeparser.rs b/src/mimeparser.rs index b0ec7b344..4a8b0ae97 100644 --- a/src/mimeparser.rs +++ b/src/mimeparser.rs @@ -1312,14 +1312,16 @@ fn get_attachment_filename(mail: &mailparse::ParsedMail) -> Result c, - // encoded_words crate say, latin-1 is not reported; moreover, latin1 is a good default - None => Charset::for_label(b"latin1").unwrap(), - }; - let decoded_bytes = decoded_bytes.collect::>(); - let (utf8_str, _, _) = charset.decode(&*decoded_bytes); - Some(utf8_str.into()) + // encoded_words crate say, latin-1 is not reported; moreover, latin1 is a good default + if let Some(charset) = Charset::for_label(charset.as_bytes()) + .or_else(|| Charset::for_label(b"latin1")) + { + let decoded_bytes = decoded_bytes.collect::>(); + let (utf8_str, _, _) = charset.decode(&*decoded_bytes); + Some(utf8_str.into()) + } else { + None + } } } else { None