Skip to content

Commit 7686b29

Browse files
authored
Merge pull request #24 from mischov/fix/utf8-decoding-errors
Return better error when input is not valid utf8
2 parents b40dc14 + d2b7f28 commit 7686b29

File tree

1 file changed

+11
-2
lines changed
  • native/meeseeks_html5ever_nif/src

1 file changed

+11
-2
lines changed

native/meeseeks_html5ever_nif/src/lib.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,22 @@ fn parse<'a>(parser_type: ParserType, env: Env<'a>, args: &[Term<'a>]) -> NifRes
163163
ParserType::HtmlDocument => {
164164
// TODO: Use Parser.from_bytes instead?
165165
let parser = html5ever::parse_document(sink, Default::default());
166-
parser.one(std::str::from_utf8(binary.as_slice()).unwrap())
166+
167+
match std::str::from_utf8(binary.as_slice()) {
168+
Ok(decoded) => parser.one(decoded),
169+
Err(_) => panic!("input is not valid utf8"),
170+
}
167171
}
168172

169173
ParserType::XmlDocument => {
170174
// TODO: Use Parser.from_bytes instead?
171175
let parser = xml5ever::driver::parse_document(sink, Default::default());
172-
parser.one(std::str::from_utf8(binary.as_slice()).unwrap())
176+
177+
match std::str::from_utf8(binary.as_slice()) {
178+
Ok(decoded) => parser.one(decoded),
179+
Err(_) => panic!("input is not valid utf8"),
180+
}
181+
173182
}
174183
};
175184

0 commit comments

Comments
 (0)