avcodec/vp56: use av_reallocp_array() and check if allocation failed

Signed-off-by: Paul B Mahol <onemda@gmail.com>
pull/36/head
Paul B Mahol 11 years ago
parent 7883827cb7
commit 942babd87f
  1. 10
      libavcodec/vp56.c

@ -475,13 +475,15 @@ static int vp56_size_changed(VP56Context *s)
return -1; return -1;
} }
s->above_blocks = av_realloc(s->above_blocks, av_reallocp_array(&s->above_blocks, 4*s->mb_width+6,
(4*s->mb_width+6) * sizeof(*s->above_blocks)); sizeof(*s->above_blocks));
s->macroblocks = av_realloc(s->macroblocks, av_reallocp_array(&s->macroblocks, s->mb_width*s->mb_height,
s->mb_width*s->mb_height*sizeof(*s->macroblocks)); sizeof(*s->macroblocks));
av_free(s->edge_emu_buffer_alloc); av_free(s->edge_emu_buffer_alloc);
s->edge_emu_buffer_alloc = av_malloc(16*stride); s->edge_emu_buffer_alloc = av_malloc(16*stride);
s->edge_emu_buffer = s->edge_emu_buffer_alloc; s->edge_emu_buffer = s->edge_emu_buffer_alloc;
if (!s->above_blocks || !s->macroblocks || !s->edge_emu_buffer_alloc)
return AVERROR(ENOMEM);
if (s->flip < 0) if (s->flip < 0)
s->edge_emu_buffer += 15 * stride; s->edge_emu_buffer += 15 * stride;

Loading…
Cancel
Save