| 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 |