diff options
Diffstat (limited to 'media/libtheora/lib/decinfo.c')
-rw-r--r-- | media/libtheora/lib/decinfo.c | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/media/libtheora/lib/decinfo.c b/media/libtheora/lib/decinfo.c index a91e740b15..603b1f93e4 100644 --- a/media/libtheora/lib/decinfo.c +++ b/media/libtheora/lib/decinfo.c @@ -11,7 +11,7 @@ ******************************************************************** function: - last mod: $Id$ + last mod: $Id: decinfo.c 17276 2010-06-05 05:57:05Z tterribe $ ********************************************************************/ @@ -20,11 +20,6 @@ #include <limits.h> #include "decint.h" -/*Only used for fuzzing.*/ -#if defined(HAVE_MEMORY_CONSTRAINT) -static const int MAX_FUZZING_WIDTH = 16384; -static const int MAX_FUZZING_HEIGHT = 16384; -#endif /*Unpacks a series of octets from a given byte array into the pack buffer. @@ -60,8 +55,8 @@ static int oc_info_unpack(oc_pack_buf *_opb,th_info *_info){ /*verify we can parse this bitstream version. We accept earlier minors and all subminors, by spec*/ if(_info->version_major>TH_VERSION_MAJOR|| - (_info->version_major==TH_VERSION_MAJOR&& - _info->version_minor>TH_VERSION_MINOR)){ + _info->version_major==TH_VERSION_MAJOR&& + _info->version_minor>TH_VERSION_MINOR){ return TH_EVERSION; } /*Read the encoded frame description.*/ @@ -87,11 +82,6 @@ static int oc_info_unpack(oc_pack_buf *_opb,th_info *_info){ _info->fps_numerator==0||_info->fps_denominator==0){ return TH_EBADHEADER; } -#if defined(HAVE_MEMORY_CONSTRAINT) - if(_info->frame_width>=MAX_FUZZING_WIDTH&&_info->frame_height>=MAX_FUZZING_HEIGHT){ - return TH_EBADHEADER; - } -#endif /*Note: The sense of pic_y is inverted in what we pass back to the application compared to how it is stored in the bitstream. This is because the bitstream uses a right-handed coordinate system, while @@ -182,23 +172,9 @@ static int oc_dec_headerin(oc_pack_buf *_opb,th_info *_info, int ret; val=oc_pack_read(_opb,8); packtype=(int)val; - /*If we're at a data packet...*/ - if(!(packtype&0x80)){ - /*Check to make sure we received all three headers... - If we haven't seen any valid headers, assume this is not actually - Theora.*/ - if(_info->frame_width<=0)return TH_ENOTFORMAT; - /*Follow our documentation, which says we'll return TH_EFAULT if this - are NULL (_info was checked by our caller).*/ - if(_tc==NULL)return TH_EFAULT; - /*And if any other headers were missing, declare this packet "out of - sequence" instead.*/ - if(_tc->vendor==NULL)return TH_EBADHEADER; - /*Don't check this until it's needed, since we allow passing NULL for the - arguments that we're not expecting the next header to fill in yet.*/ - if(_setup==NULL)return TH_EFAULT; - if(*_setup==NULL)return TH_EBADHEADER; - /*If we got everything, we're done.*/ + /*If we're at a data packet and we have received all three headers, we're + done.*/ + if(!(packtype&0x80)&&_info->frame_width>0&&_tc->vendor!=NULL&&*_setup!=NULL){ return 0; } /*Check the codec string.*/ |