@ -522,7 +522,7 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
while ( ! packet_read ) {
chunk_type = avio_rl32 ( pb ) ;
chunk_size = ea - > big_endian ? avio_rb32 ( pb ) : avio_rl32 ( pb ) ;
if ( chunk_size < = 8 )
if ( chunk_size < 8 )
return AVERROR_INVALIDDATA ;
chunk_size - = 8 ;
@ -547,6 +547,9 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
avio_skip ( pb , 8 ) ;
chunk_size - = 12 ;
}
if ( ! chunk_size )
continue ;
ret = av_get_packet ( pb , pkt , chunk_size ) ;
if ( ret < 0 )
return ret ;
@ -607,6 +610,9 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
goto get_video_packet ;
case mTCD_TAG :
if ( chunk_size < 8 )
return AVERROR_INVALIDDATA ;
avio_skip ( pb , 8 ) ; // skip ea DCT header
chunk_size - = 8 ;
goto get_video_packet ;
@ -617,6 +623,9 @@ static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)
key = AV_PKT_FLAG_KEY ;
case MV0F_TAG :
get_video_packet :
if ( ! chunk_size )
continue ;
ret = av_get_packet ( pb , pkt , chunk_size ) ;
if ( ret < 0 )
return ret ;