check stack len before getting value

This commit is contained in:
Patrick Ventuzelo
2019-11-22 17:10:54 +01:00
parent 7bb570a7f9
commit 508004088e

View File

@ -240,12 +240,16 @@ impl State {
&self,
n: usize,
) -> Result<&[(BasicValueEnum, ExtraInfo)], BinaryReaderError> {
self.stack
.get(self.stack.len() - n..)
.ok_or(BinaryReaderError {
if self.stack.len() < n {
return Err(BinaryReaderError {
message: "invalid value stack",
offset: -1isize as usize,
})
});
}
let new_len = self.stack.len() - n;
Ok(&self.stack[new_len..])
}
pub fn popn_save_extra(