On Thu, Sep 08, 2011 at 09:09:14AM +0200, Kostya Shishkov wrote: > On Wed, Sep 07, 2011 at 09:43:03PM +0200, Laurent Aimar wrote: > > --- > > libavcodec/wavpack.c | 4 ++-- > > 1 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c > > index 62f6880..0a70c4c 100644 > > --- a/libavcodec/wavpack.c > > +++ b/libavcodec/wavpack.c > > @@ -841,12 +841,12 @@ static int wavpack_decode_block(AVCodecContext > > *avctx, int block_no, > > } > > switch(id & WP_IDF_MASK){ > > case WP_ID_DECTERMS: > > - s->terms = size; > > - if(s->terms > MAX_TERMS){ > > + if(size > MAX_TERMS){ > > av_log(avctx, AV_LOG_ERROR, "Too many decorrelation > > terms\n"); > > buf += ssize; > > continue; > > } > > + s->terms = size; > > for(i = 0; i < s->terms; i++) { > > s->decorr[s->terms - i - 1].value = (*buf & 0x1F) - 5; > > s->decorr[s->terms - i - 1].delta = *buf >> 5; > > -- > > Since s->terms is used elsewhere it's better just to set it to zero inside > that if() IMO.
The idea was to not have a value of s->terms that is greater that the size of the associated array which cannot be with this patch. I don't know if setting it to 0 here make sense or if it wouldn't be better to set it to 0 elsewhere as I am not the maintainer. -- fenrir _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel