[FFmpeg-cvslog] r20411 - trunk/libavcodec/vorbis_dec.c

Måns Rullgård mans
Fri Jul 2 10:07:43 CEST 2010


Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:

> On Fri, Jul 02, 2010 at 12:38:14AM +0100, M?ns Rullg?rd wrote:
>> reimar <subversion at mplayerhq.hu> writes:
>> 
>> > @@ -564,10 +571,7 @@ static int vorbis_parse_setup_hdr_floors
>> >                  int idx;
>> >                  uint_fast8_t book_idx;
>> >                  for (idx = 0; idx < floor_setup->data.t0.num_books; ++idx) {
>> > -                    book_idx = get_bits(gb, 8);
>> > -                    if (book_idx >= vc->codebook_count)
>> > -                        return -1;
>> > -                    floor_setup->data.t0.book_list[idx] = book_idx;
>> > +                    GET_VALIDATED_INDEX(floor_setup->data.t0.book_list[idx], 8, vc->codebook_count)
>> >                      if (vc->codebooks[book_idx].dimensions > max_codebook_dim)
>> >                          max_codebook_dim = vc->codebooks[book_idx].dimensions;
>> >                  }
>> 
>> This looks wrong.  book_idx is never written.
>
> I guess this should fix it?
> Index: vorbis_dec.c
> ===================================================================
> --- vorbis_dec.c        (revision 23825)
> +++ vorbis_dec.c        (working copy)
> @@ -569,7 +569,8 @@
>                  int idx;
>                  uint_fast8_t book_idx;
>                  for (idx = 0; idx < floor_setup->data.t0.num_books; ++idx) {
> -                    GET_VALIDATED_INDEX(floor_setup->data.t0.book_list[idx], 8, vc->codebook_count)
> +                    GET_VALIDATED_INDEX(book_idx, 8, vc->codebook_count)
> +                    floor_setup->data.t0.book_list[idx] = book_idx;
>                      if (vc->codebooks[book_idx].dimensions > max_codebook_dim)
>                          max_codebook_dim = vc->codebooks[book_idx].dimensions;
>                  }

Looks like it to me.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-cvslog mailing list