cranelift-isle: Don't panic on too-large rule priorities (#5236)
Found with ISLE's fuzzer.
This commit is contained in:
@@ -390,7 +390,10 @@ impl<'a> Parser<'a> {
|
|||||||
fn parse_rule(&mut self) -> Result<Rule> {
|
fn parse_rule(&mut self) -> Result<Rule> {
|
||||||
let pos = self.pos();
|
let pos = self.pos();
|
||||||
let prio = if self.is_int() {
|
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 {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
@@ -407,7 +410,7 @@ impl<'a> Parser<'a> {
|
|||||||
iflets,
|
iflets,
|
||||||
expr,
|
expr,
|
||||||
pos,
|
pos,
|
||||||
prio: prio.map(|prio| i64::try_from(prio).unwrap()),
|
prio,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user