@@ -26,7 +26,7 @@ use boxes::{BoxType, FourCC};
26
26
mod tests;
27
27
28
28
// Arbitrary buffer size limit used for raw read_bufs on a box.
29
- const BUF_SIZE_LIMIT : u64 = 1024 * 1024 ;
29
+ const BUF_SIZE_LIMIT : usize = 1024 * 1024 ;
30
30
31
31
static DEBUG_MODE : std:: sync:: atomic:: AtomicBool = std:: sync:: atomic:: ATOMIC_BOOL_INIT ;
32
32
@@ -1510,9 +1510,6 @@ fn read_esds<T: Read>(src: &mut BMFFBox<T>) -> Result<ES_Descriptor> {
1510
1510
let ( _, _) = read_fullbox_extra ( src) ?;
1511
1511
1512
1512
let esds_size = src. head . size - src. head . offset - 4 ;
1513
- if esds_size > BUF_SIZE_LIMIT {
1514
- return Err ( Error :: InvalidData ( "esds box exceeds BUF_SIZE_LIMIT" ) ) ;
1515
- }
1516
1513
let esds_array = read_buf ( src, esds_size as usize ) ?;
1517
1514
1518
1515
let mut es_data = ES_Descriptor :: default ( ) ;
@@ -1700,9 +1697,6 @@ fn read_video_sample_entry<T: Read>(src: &mut BMFFBox<T>) -> Result<(CodecType,
1700
1697
return Err ( Error :: InvalidData ( "malformed video sample entry" ) ) ;
1701
1698
}
1702
1699
let avcc_size = b. head . size - b. head . offset ;
1703
- if avcc_size > BUF_SIZE_LIMIT {
1704
- return Err ( Error :: InvalidData ( "avcC box exceeds BUF_SIZE_LIMIT" ) ) ;
1705
- }
1706
1700
let avcc = read_buf ( & mut b. content , avcc_size as usize ) ?;
1707
1701
log ! ( "{:?} (avcc)" , avcc) ;
1708
1702
// TODO(kinetik): Parse avcC box? For now we just stash the data.
@@ -1993,6 +1987,9 @@ fn skip<T: Read>(src: &mut T, mut bytes: usize) -> Result<()> {
1993
1987
1994
1988
/// Read size bytes into a Vector or return error.
1995
1989
fn read_buf < T : ReadBytesExt > ( src : & mut T , size : usize ) -> Result < Vec < u8 > > {
1990
+ if size > BUF_SIZE_LIMIT {
1991
+ return Err ( Error :: InvalidData ( "read_buf size exceeds BUF_SIZE_LIMIT" ) ) ;
1992
+ }
1996
1993
let mut buf = vec ! [ 0 ; size] ;
1997
1994
let r = src. read ( & mut buf) ?;
1998
1995
if r != size {
0 commit comments