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, &self,
n: usize, n: usize,
) -> Result<&[(BasicValueEnum, ExtraInfo)], BinaryReaderError> { ) -> Result<&[(BasicValueEnum, ExtraInfo)], BinaryReaderError> {
self.stack if self.stack.len() < n {
.get(self.stack.len() - n..) return Err(BinaryReaderError {
.ok_or(BinaryReaderError {
message: "invalid value stack", message: "invalid value stack",
offset: -1isize as usize, offset: -1isize as usize,
}) });
}
let new_len = self.stack.len() - n;
Ok(&self.stack[new_len..])
} }
pub fn popn_save_extra( pub fn popn_save_extra(