| OLD | NEW | 
|---|
| 1 diff -rpu -N orig/libavcodec/aacdec.c ffmpeg-mt/libavcodec/aacdec.c | 1 diff -wurp -N orig/libavcodec/aacdec.c ffmpeg-mt/libavcodec/aacdec.c | 
| 2 --- orig/libavcodec/aacdec.c»   2010-10-11 16:55:17 -0700 | 2 --- orig/libavcodec/aacdec.c»   2010-11-04 08:08:21 -0700 | 
| 3 +++ ffmpeg-mt/libavcodec/aacdec.c»      2010-10-11 16:55:22 -0700 | 3 +++ ffmpeg-mt/libavcodec/aacdec.c»      2010-11-04 08:08:27 -0700 | 
| 4 @@ -447,6 +447,7 @@ static int decode_audio_specific_config( | 4 @@ -447,6 +447,7 @@ static int decode_audio_specific_config( | 
| 5      int i; | 5      int i; | 
| 6 | 6 | 
| 7      init_get_bits(&gb, data, data_size * 8); | 7      init_get_bits(&gb, data, data_size * 8); | 
| 8 +    gb.buffer_enforcing = 1; | 8 +    gb.buffer_enforcing = 1; | 
| 9 | 9 | 
| 10      if ((i = ff_mpeg4audio_get_config(&ac->m4ac, data, data_size)) < 0) | 10      if ((i = ff_mpeg4audio_get_config(&ac->m4ac, data, data_size)) < 0) | 
| 11          return -1; | 11          return -1; | 
| 12 @@ -1933,6 +1934,7 @@ static int aac_decode_frame(AVCodecConte | 12 @@ -1933,6 +1934,7 @@ static int aac_decode_frame(AVCodecConte | 
| 13      int buf_offset; | 13      int buf_offset; | 
| 14 | 14 | 
| 15      init_get_bits(&gb, buf, buf_size * 8); | 15      init_get_bits(&gb, buf, buf_size * 8); | 
| 16 +    gb.buffer_enforcing = 1; | 16 +    gb.buffer_enforcing = 1; | 
| 17 | 17 | 
| 18      if (show_bits(&gb, 12) == 0xfff) { | 18      if (show_bits(&gb, 12) == 0xfff) { | 
| 19          if (parse_adts_frame_header(ac, &gb) < 0) { | 19          if (parse_adts_frame_header(ac, &gb) < 0) { | 
| 20 @@ -1948,6 +1950,12 @@ static int aac_decode_frame(AVCodecConte | 20 @@ -1948,6 +1950,12 @@ static int aac_decode_frame(AVCodecConte | 
| 21      ac->tags_mapped = 0; | 21      ac->tags_mapped = 0; | 
| 22      // parse | 22      // parse | 
| 23      while ((elem_type = get_bits(&gb, 3)) != TYPE_END) { | 23      while ((elem_type = get_bits(&gb, 3)) != TYPE_END) { | 
| 24 +#ifdef ALT_BITSTREAM_READER | 24 +#ifdef ALT_BITSTREAM_READER | 
| 25 +        if (gb.buffer_exhausted) { | 25 +        if (gb.buffer_exhausted) { | 
| 26 +            av_log(ac->avctx, AV_LOG_ERROR, "out of bounds read: index, size: %
    d, %d\n", gb.index, gb.size_in_bits); | 26 +            av_log(ac->avctx, AV_LOG_ERROR, "out of bounds read: index, size: %
    d, %d\n", gb.index, gb.size_in_bits); | 
| 27 +            return -1; | 27 +            return -1; | 
| 28 +        } | 28 +        } | 
| 29 +#endif | 29 +#endif | 
| 30          elem_id = get_bits(&gb, 4); | 30          elem_id = get_bits(&gb, 4); | 
| 31 | 31 | 
| 32          if (elem_type < TYPE_DSE) { | 32          if (elem_type < TYPE_DSE) { | 
| OLD | NEW | 
|---|