Skip to content

Commit d862fc3

Browse files
authored
fix(r8): Handle invalid headers gracefully (#57)
1 parent ac2d168 commit d862fc3

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/mapping.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,10 @@ fn parse_r8_header(bytes: &[u8]) -> Result<(ProguardRecord, &[u8]), ParseError>
521521

522522
let (header, rest) = parse_until(bytes, is_newline)?;
523523

524-
let header = serde_json::from_str(header).unwrap();
524+
let header = serde_json::from_str(header).map_err(|_| ParseError {
525+
line: bytes,
526+
kind: ParseErrorKind::ParseError("invalid r8 header"),
527+
})?;
525528
Ok((
526529
ProguardRecord::R8Header(header),
527530
consume_leading_newlines(rest),
@@ -804,6 +807,12 @@ mod tests {
804807
);
805808
}
806809

810+
#[test]
811+
fn try_parse_r8_headers_invalid() {
812+
let bytes = br#"# {123:"foobar"}"#;
813+
assert!(ProguardRecord::try_parse(bytes).is_err(),);
814+
}
815+
807816
#[test]
808817
fn try_parse_r8_headers() {
809818
let bytes = br#"# {"id":"foobar"}"#;

0 commit comments

Comments
 (0)