Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: patches/ugly/10_aac_oob_read.patch

Issue 4533003: patched ffmpeg nov 2 (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/
Patch Set: '' Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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) {
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698