On Wed, Oct 26, 2011 at 04:18:30PM -0400, Justin Ruggles wrote:
> ---
>  libavcodec/apedec.c |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
> index d73651b..9e4f176 100644
> --- a/libavcodec/apedec.c
> +++ b/libavcodec/apedec.c
> @@ -813,7 +813,7 @@ static int ape_decode_frame(AVCodecContext *avctx,
>      APEContext *s = avctx->priv_data;
>      int16_t *samples = data;
>      uint32_t nblocks;
> -    int i, n;
> +    int i;
>      int blockstodecode;
>      int bytes_used;
>  
> @@ -824,6 +824,7 @@ static int ape_decode_frame(AVCodecContext *avctx,
>      }
>  
>      if(!s->samples){
> +        uint32_t offset;
>          void *tmp_data = av_realloc(s->data, (buf_size + 3) & ~3);
>          if (!tmp_data)
>              return AVERROR(ENOMEM);
> @@ -833,13 +834,13 @@ static int ape_decode_frame(AVCodecContext *avctx,
>          s->data_end = s->data + buf_size;
>  
>          nblocks = bytestream_get_be32(&s->ptr);
> -        n =  bytestream_get_be32(&s->ptr);
> -        if(n < 0 || n > 3){
> +        offset  = bytestream_get_be32(&s->ptr);
> +        if (offset > 3) {
>              av_log(avctx, AV_LOG_ERROR, "Incorrect offset passed\n");
>              s->data = NULL;
>              return AVERROR_INVALIDDATA;
>          }
> -        s->ptr += n;
> +        s->ptr += offset;
>  
>          if (!nblocks || nblocks > INT_MAX) {
>              av_log(avctx, AV_LOG_ERROR, "Invalid sample count: %u.\n", 
> nblocks);
> -- 

OK
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to