On 2012-01-31 11:40:15 -0500, Justin Ruggles wrote:
> From: Reimar Döffinger <[email protected]>
> 
> Ensures alignment and avoids using uninitialized data.
> 
> Signed-off-by: Justin Ruggles <[email protected]>
> ---
>  libavcodec/fraps.c |   11 +++++++++--
>  1 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/fraps.c b/libavcodec/fraps.c
> index 1444eda..5f5e55e 100644
> --- a/libavcodec/fraps.c
> +++ b/libavcodec/fraps.c
> @@ -46,6 +46,7 @@ typedef struct FrapsContext{
>      AVCodecContext *avctx;
>      AVFrame frame;
>      uint8_t *tmpbuf;
> +    int tmpbuf_size;
>      DSPContext dsp;
>  } FrapsContext;
>  
> @@ -276,7 +277,10 @@ static int decode_frame(AVCodecContext *avctx,
>          offs[planes] = buf_size;
>          for(i = 0; i < planes; i++){
>              is_chroma = !!i;
> -            s->tmpbuf = av_realloc(s->tmpbuf, offs[i + 1] - offs[i] - 1024 + 
> FF_INPUT_BUFFER_PADDING_SIZE);
> +            av_fast_padded_malloc(&s->tmpbuf, &s->tmpbuf_size,
> +                                  offs[i + 1] - offs[i] - 1024);
> +            if (!s->tmpbuf)
> +                return AVERROR(ENOMEM);
>              if(fraps2_decode_plane(s, f->data[i], f->linesize[i], 
> avctx->width >> is_chroma,
>                      avctx->height >> is_chroma, buf + offs[i], offs[i + 1] - 
> offs[i], is_chroma, 1) < 0) {
>                  av_log(avctx, AV_LOG_ERROR, "Error decoding plane %i\n", i);
> @@ -318,7 +322,10 @@ static int decode_frame(AVCodecContext *avctx,
>          }
>          offs[planes] = buf_size;
>          for(i = 0; i < planes; i++){
> -            s->tmpbuf = av_realloc(s->tmpbuf, offs[i + 1] - offs[i] - 1024 + 
> FF_INPUT_BUFFER_PADDING_SIZE);
> +            av_fast_padded_malloc(&s->tmpbuf, &s->tmpbuf_size,
> +                                  offs[i + 1] - offs[i] - 1024);
> +            if (!s->tmpbuf)
> +                return AVERROR(ENOMEM);
>              if(fraps2_decode_plane(s, f->data[0] + i + (f->linesize[0] * 
> (avctx->height - 1)), -f->linesize[0],
>                      avctx->width, avctx->height, buf + offs[i], offs[i + 1] 
> - offs[i], 0, 3) < 0) {
>                  av_log(avctx, AV_LOG_ERROR, "Error decoding plane %i\n", i);

probably ok if the uninitialized data just involves the
FF_INPUT_BUFFER_PADDING.

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

Reply via email to