Fix metadata/preview media sizes for 32-bit targets (#446)

replace `usize` with `u64` for md/pvm lengths

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
This commit is contained in:
jake 2022-10-29 10:07:10 +01:00 committed by GitHub
parent aff03b3f49
commit e1da54d75b
2 changed files with 14 additions and 6 deletions

View File

@ -174,7 +174,10 @@ impl Metadata {
metadata.extend_from_slice(&self.algorithm.serialize()); // 4
metadata.extend_from_slice(&self.metadata_nonce); // 24 max
metadata.extend_from_slice(&vec![0u8; 24 - self.metadata_nonce.len()]); // 28
metadata.extend_from_slice(&self.metadata.len().to_le_bytes()); // 36 total bytes
let metadata_len = self.metadata.len() as u64;
metadata.extend_from_slice(&metadata_len.to_le_bytes()); // 36 total bytes
metadata.extend_from_slice(&self.metadata); // this can vary in length
metadata
}
@ -210,9 +213,10 @@ impl Metadata {
let mut metadata_length = [0u8; 8];
reader.read(&mut metadata_length).map_err(Error::Io)?;
let metadata_length: usize = usize::from_le_bytes(metadata_length);
let metadata_length = u64::from_le_bytes(metadata_length);
let mut metadata = vec![0u8; metadata_length];
#[allow(clippy::cast_possible_truncation)]
let mut metadata = vec![0u8; metadata_length as usize];
reader.read(&mut metadata).map_err(Error::Io)?;
let metadata = Self {

View File

@ -161,7 +161,10 @@ impl PreviewMedia {
preview_media.extend_from_slice(&self.algorithm.serialize()); // 4
preview_media.extend_from_slice(&self.media_nonce); // 24 max
preview_media.extend_from_slice(&vec![0u8; 24 - self.media_nonce.len()]); // 28 total bytes
preview_media.extend_from_slice(&self.media.len().to_le_bytes()); // 36 total bytes
let media_len = self.media.len() as u64;
preview_media.extend_from_slice(&media_len.to_le_bytes()); // 36 total bytes
preview_media.extend_from_slice(&self.media); // this can vary in length
preview_media
}
@ -198,9 +201,10 @@ impl PreviewMedia {
let mut media_length = [0u8; 8];
reader.read(&mut media_length).map_err(Error::Io)?;
let media_length: usize = usize::from_le_bytes(media_length);
let media_length = u64::from_le_bytes(media_length);
let mut media = vec![0u8; media_length];
#[allow(clippy::cast_possible_truncation)]
let mut media = vec![0u8; media_length as usize];
reader.read(&mut media).map_err(Error::Io)?;
let preview_media = Self {