Skip to content

Commit

Permalink
Continue to make use of fallible allocation
Browse files Browse the repository at this point in the history
  • Loading branch information
Serial-ATA committed Feb 9, 2022
1 parent c473177 commit 2763fcc
Show file tree
Hide file tree
Showing 11 changed files with 23 additions and 13 deletions.
3 changes: 2 additions & 1 deletion src/ape/tag/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ use crate::ape::constants::INVALID_KEYS;
use crate::error::{FileDecodingError, Result};
use crate::types::file::FileType;
use crate::types::item::ItemValue;
use crate::macros::try_vec;

use std::io::{Read, Seek, SeekFrom};

Expand Down Expand Up @@ -53,7 +54,7 @@ where

let item_type = (flags & 6) >> 1;

let mut value = vec![0; value_size as usize];
let mut value = try_vec![0; value_size as usize];
data.read_exact(&mut value)?;

let parsed_value = match item_type {
Expand Down
3 changes: 2 additions & 1 deletion src/id3/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ pub mod v1;
pub mod v2;

use crate::error::{ErrorKind, LoftyError, Result};
use crate::macros::try_vec;
use v2::{read_id3v2_header, Id3v2Header};

use std::io::{Read, Seek, SeekFrom};
Expand Down Expand Up @@ -98,7 +99,7 @@ where

if let Ok(id3v2_header) = read_id3v2_header(data) {
if read {
let mut tag = vec![0; id3v2_header.size as usize];
let mut tag = try_vec![0; id3v2_header.size as usize];
data.read_exact(&mut tag)?;

id3v2 = Some(tag)
Expand Down
3 changes: 2 additions & 1 deletion src/id3/v2/frame/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use super::Frame;
use crate::error::{Id3v2Error, Id3v2ErrorKind, Result};
use crate::id3::v2::frame::content::parse_content;
use crate::id3::v2::{FrameValue, Id3v2Version};
use crate::macros::try_vec;

use std::io::Read;

Expand All @@ -23,7 +24,7 @@ impl Frame {
Some(frame_header) => frame_header,
};

let mut content = vec![0; size as usize];
let mut content = try_vec![0; size as usize];
reader.read_exact(&mut content)?;

if flags.unsynchronisation {
Expand Down
3 changes: 2 additions & 1 deletion src/id3/v2/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ use super::frame::Frame;
use super::tag::Id3v2Tag;
use super::Id3v2Header;
use crate::error::Result;
use crate::macros::try_vec;

use std::io::Read;

pub(crate) fn parse_id3v2<R>(bytes: &mut R, header: Id3v2Header) -> Result<Id3v2Tag>
where
R: Read,
{
let mut tag_bytes = vec![0; header.size as usize];
let mut tag_bytes = try_vec![0; header.size as usize];
bytes.read_exact(&mut tag_bytes)?;

let mut tag = Id3v2Tag::default();
Expand Down
2 changes: 1 addition & 1 deletion src/iff/chunk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ impl<B: ByteOrder> Chunks<B> {
where
R: Read + Seek,
{
let mut value = vec![0; self.size as usize];
let mut value = try_vec![0; self.size as usize];
data.read_exact(&mut value)?;

let reader = &mut &*value;
Expand Down
3 changes: 2 additions & 1 deletion src/mp4/atom_info.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use crate::error::{ErrorKind, LoftyError, Result};
use crate::macros::try_vec;

use std::io::{Read, Seek, SeekFrom};

Expand Down Expand Up @@ -108,7 +109,7 @@ where
data.seek(SeekFrom::Current(4))?;

// Already read the size, identifier, and version/flags (12 bytes)
let mut content = vec![0; (atom.len - 12) as usize];
let mut content = try_vec![0; (atom.len - 12) as usize];
data.read_exact(&mut content)?;

String::from_utf8(content).map_err(|_| {
Expand Down
5 changes: 3 additions & 2 deletions src/mp4/ilst/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ use crate::id3::v2::util::text_utils::utf16_decode;
use crate::mp4::atom_info::AtomInfo;
use crate::mp4::read::skip_unneeded;
use crate::types::picture::{MimeType, Picture, PictureType};
use crate::macros::try_vec;

use std::borrow::Cow;
use std::io::{Cursor, Read, Seek, SeekFrom};
Expand All @@ -15,7 +16,7 @@ pub(in crate::mp4) fn parse_ilst<R>(reader: &mut R, len: u64) -> Result<Ilst>
where
R: Read,
{
let mut contents = vec![0; len as usize];
let mut contents = try_vec![0; len as usize];
reader.read_exact(&mut contents)?;

let mut cursor = Cursor::new(contents);
Expand Down Expand Up @@ -92,7 +93,7 @@ where
// We don't care about the locale
data.seek(SeekFrom::Current(4))?;

let mut content = vec![0; (atom.len - 16) as usize];
let mut content = try_vec![0; (atom.len - 16) as usize];
data.read_exact(&mut content)?;

// https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW35
Expand Down
3 changes: 2 additions & 1 deletion src/mp4/properties.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use super::atom_info::{AtomIdent, AtomInfo};
use super::read::{nested_atom, skip_unneeded};
use super::trak::Trak;
use crate::error::{ErrorKind, FileDecodingError, LoftyError, Result};
use crate::macros::try_vec;
use crate::types::file::FileType;
use crate::types::properties::FileProperties;

Expand Down Expand Up @@ -223,7 +224,7 @@ where

if let Some(stbl) = nested_atom(data, minf.len, b"stbl")? {
if let Some(stsd) = nested_atom(data, stbl.len, b"stsd")? {
let mut stsd = vec![0; (stsd.len - 8) as usize];
let mut stsd = try_vec![0; (stsd.len - 8) as usize];
data.read_exact(&mut stsd)?;

let mut stsd_reader = Cursor::new(&*stsd);
Expand Down
3 changes: 2 additions & 1 deletion src/ogg/flac/block.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use crate::error::Result;
use crate::macros::try_vec;

use std::io::{Read, Seek, SeekFrom};

Expand Down Expand Up @@ -27,7 +28,7 @@ impl Block {

let size = data.read_uint::<BigEndian>(3)? as u32;

let mut content = vec![0; size as usize];
let mut content = try_vec![0; size as usize];
data.read_exact(&mut content)?;

let end = data.seek(SeekFrom::Current(0))?;
Expand Down
5 changes: 3 additions & 2 deletions src/ogg/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
use super::tag::VorbisComments;
use super::verify_signature;
use crate::error::{ErrorKind, FileDecodingError, LoftyError, Result};
use crate::macros::try_vec;
#[cfg(feature = "vorbis_comments")]
use crate::types::picture::Picture;

Expand All @@ -24,7 +25,7 @@ where
{
let vendor_len = data.read_u32::<LittleEndian>()?;

let mut vendor = vec![0; vendor_len as usize];
let mut vendor = try_vec![0; vendor_len as usize];
data.read_exact(&mut vendor)?;

let vendor = match String::from_utf8(vendor) {
Expand All @@ -44,7 +45,7 @@ where
for _ in 0..comments_total_len {
let comment_len = data.read_u32::<LittleEndian>()?;

let mut comment_bytes = vec![0; comment_len as usize];
let mut comment_bytes = try_vec![0; comment_len as usize];
data.read_exact(&mut comment_bytes)?;

let comment = String::from_utf8(comment_bytes)?;
Expand Down
3 changes: 2 additions & 1 deletion src/ogg/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use crate::ogg::constants::{OPUSTAGS, VORBIS_COMMENT_HEAD};
use crate::ogg::tag::VorbisCommentsRef;
use crate::types::picture::PictureInformation;
use crate::types::tag::{Tag, TagType};
use crate::macros::try_vec;

use std::convert::TryFrom;
use std::fs::File;
Expand Down Expand Up @@ -126,7 +127,7 @@ pub(super) fn write(data: &mut File, tag: &mut VorbisCommentsRef, format: OGGFor
let md_reader = &mut &first_md_page.content()[comment_signature.len()..];

let vendor_len = md_reader.read_u32::<LittleEndian>()?;
let mut vendor = vec![0; vendor_len as usize];
let mut vendor = try_vec![0; vendor_len as usize];
md_reader.read_exact(&mut vendor)?;

let mut packet = Cursor::new(Vec::new());
Expand Down

0 comments on commit 2763fcc

Please sign in to comment.