pub fn is_offset_safe(
available_data: usize,
next_offset: usize,
last_offset: Option<usize>,
) -> boolExpand description
Validates data offsets to prevent out-of-bounds access and infinite loops while parsing file formats.
§Notes
next_offsetmust be within the bounds ofavailable_dataprevious_offsetmust be less thannext_offset, orNone
§Example
use binwalk::common::is_offset_safe;
let my_data: &[u8] = b"ABCD";
let available_data = my_data.len();
assert!(is_offset_safe(available_data, 0, None));
assert!(!is_offset_safe(available_data, 4, None));
assert!(is_offset_safe(available_data, 2, Some(1)));
assert!(!is_offset_safe(available_data, 2, Some(2)));
assert!(!is_offset_safe(available_data, 1, Some(2)));