Bug 1694670. Fix the OOB check in write_u32/u16. r=aosmond

Differential Revision: https://phabricator.services.mozilla.com/D106362
This commit is contained in:
Jeff Muizelaar 2021-02-25 13:18:47 +00:00
parent c7dc3fd5c1
commit 4ac01c88b7

View File

@ -229,7 +229,7 @@ fn read_uInt16Number(mem: &mut MemSource, offset: usize) -> uInt16Number {
read_u16(mem, offset)
}
pub fn write_u32(mem: &mut [u8], offset: usize, value: u32) {
if offset <= mem.len() - std::mem::size_of_val(&value) {
if offset > mem.len() - std::mem::size_of_val(&value) {
panic!("OOB");
}
let mem = mem.as_mut_ptr();
@ -238,7 +238,7 @@ pub fn write_u32(mem: &mut [u8], offset: usize, value: u32) {
}
}
pub fn write_u16(mem: &mut [u8], offset: usize, value: u16) {
if offset <= mem.len() - std::mem::size_of_val(&value) {
if offset > mem.len() - std::mem::size_of_val(&value) {
panic!("OOB");
}
let mem = mem.as_mut_ptr();