cranelift-isle: Don't panic on too-large rule priorities (#5236)

Found with ISLE's fuzzer.
This commit is contained in:
Jamey Sharp
2022-11-09 12:36:02 -08:00
committed by GitHub
parent fc62d4ad65
commit d38631a724

View File

@@ -390,7 +390,10 @@ impl<'a> Parser<'a> {
fn parse_rule(&mut self) -> Result<Rule> {
let pos = self.pos();
let prio = if self.is_int() {
Some(self.int()?)
Some(
i64::try_from(self.int()?)
.map_err(|err| self.error(pos, format!("Invalid rule priority: {}", err)))?,
)
} else {
None
};
@@ -407,7 +410,7 @@ impl<'a> Parser<'a> {
iflets,
expr,
pos,
prio: prio.map(|prio| i64::try_from(prio).unwrap()),
prio,
});
}
}