Fix potential as_ptr() substraction bug

embed
Manos Pitsidianakis 2018-08-19 12:59:01 +03:00
parent a24c366670
commit 47dd2ed93e
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
2 changed files with 3 additions and 3 deletions

View File

@ -81,7 +81,7 @@ impl AttachmentBuilder {
}
assert!(boundary.is_some());
let _boundary = boundary.unwrap();
let offset = _boundary.as_ptr() as usize - value.as_ptr() as usize;
let offset = (_boundary.as_ptr() as usize).wrapping_sub(value.as_ptr() as usize);
let boundary = SliceBuild::new(offset, _boundary.len());
let subattachments = Self::subattachments(&self.raw, boundary.get(&value));
assert!(subattachments.len() > 0);
@ -215,7 +215,7 @@ impl AttachmentBuilder {
}
};
let body_slice = {
let offset = body.as_ptr() as usize - a.as_ptr() as usize;
let offset = (body.as_ptr() as usize).wrapping_sub(a.as_ptr() as usize);
SliceBuild::new(offset, body.len())
};
builder.raw = body_slice.get(a).ltrim().into();

View File

@ -418,7 +418,7 @@ fn group(input: &[u8]) -> IResult<&[u8], Address> {
return IResult::Error(e);
}
IResult::Done(rest, vec) => {
let size: usize = (rest.as_ptr() as usize) - ((&input[0..] as &[u8]).as_ptr() as usize);
let size: usize = (rest.as_ptr() as usize).wrapping_sub((&input[0..] as &[u8]).as_ptr() as usize);
return IResult::Done(
rest,
Address::Group(GroupAddress {