On Wed, Dec 17, 2014 at 4:02 PM, Vittorio Giovara <[email protected]> wrote: > Check memory earlier, check one more allocation and cleanup on error. > > CC: [email protected] > Bug-Id: CID 1257773 > --- > libavcodec/vp8.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c > index 9a12346..4ea6d56 100644 > --- a/libavcodec/vp8.c > +++ b/libavcodec/vp8.c > @@ -168,19 +168,25 @@ int update_dimensions(VP8Context *s, int width, int > height, int is_vp7) > s->top_border = av_mallocz((s->mb_width + 1) * sizeof(*s->top_border)); > s->thread_data = av_mallocz(MAX_THREADS * sizeof(VP8ThreadData)); > > + if (!s->macroblocks_base || !s->top_nnz || !s->top_border || > + !s->thread_data || (!s->intra4x4_pred_mode_top && !s->mb_layout)) { > + free_buffers(s); > + return AVERROR(ENOMEM); > + } > + > for (i = 0; i < MAX_THREADS; i++) { > s->thread_data[i].filter_strength = > av_mallocz(s->mb_width * > sizeof(*s->thread_data[0].filter_strength)); > + if (!s->thread_data[i].filter_strength) { > + free_buffers(s); > + return AVERROR(ENOMEM); > + } > #if HAVE_THREADS > pthread_mutex_init(&s->thread_data[i].lock, NULL); > pthread_cond_init(&s->thread_data[i].cond, NULL); > #endif > } > > - if (!s->macroblocks_base || !s->top_nnz || !s->top_border || > - (!s->intra4x4_pred_mode_top && !s->mb_layout)) > - return AVERROR(ENOMEM); > - > s->macroblocks = s->macroblocks_base + 1; > > return 0; > -- > 1.9.3 (Apple Git-50) >
ping -- Vittorio _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
