forked from proxmox-mirrors/proxmox
schema: fix pointer/length confusion in str_slice_to_range
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
62e105a34e
commit
8c5fa1c562
@ -153,17 +153,15 @@ impl<'o, 'i> Cow3<'o, 'i, str> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn str_slice_to_range(original: &str, slice: &str) -> Option<Range<usize>> {
|
pub fn str_slice_to_range(original: &str, slice: &str) -> Option<Range<usize>> {
|
||||||
let bytes = original.as_bytes();
|
let orig_addr = original.as_ptr() as usize;
|
||||||
|
let slice_addr = slice.as_ptr() as usize;
|
||||||
let orig_addr = bytes.as_ptr() as usize;
|
|
||||||
let slice_addr = slice.as_bytes().as_ptr() as usize;
|
|
||||||
let offset = slice_addr.checked_sub(orig_addr)?;
|
let offset = slice_addr.checked_sub(orig_addr)?;
|
||||||
if offset > orig_addr + bytes.len() {
|
if offset > original.len() {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
let end = offset + slice.as_bytes().len();
|
let end = offset + slice.len();
|
||||||
if end > orig_addr + bytes.len() {
|
if end > original.len() {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user