diff --git a/src/header/common/pragma.rs b/src/header/common/pragma.rs index 23dbae27..a8ddaf04 100644 --- a/src/header/common/pragma.rs +++ b/src/header/common/pragma.rs @@ -57,4 +57,6 @@ fn test_parse_header() { let c: Pragma = Header::parse_header([b"FoObar".to_vec()].as_ref()).unwrap(); let d = Pragma::Ext("FoObar".to_string()); assert_eq!(c, d); + let e: Option = Header::parse_header([b"".to_vec()].as_ref()); + assert_eq!(e, None); } diff --git a/src/header/parsing.rs b/src/header/parsing.rs index 07ded6c5..957a3f9b 100644 --- a/src/header/parsing.rs +++ b/src/header/parsing.rs @@ -9,10 +9,12 @@ pub fn from_one_raw_str(raw: &[Vec]) -> Option { return None; } // we JUST checked that raw.len() == 1, so raw[0] WILL exist. - match str::from_utf8(&raw[0][..]) { - Ok(s) => str::FromStr::from_str(s).ok(), - Err(_) => None + if let Ok(s) = str::from_utf8(&raw[0][..]) { + if s != "" { + return str::FromStr::from_str(s).ok(); + } } + None } /// Reads a comma-delimited raw header into a Vec.