On 12/05/15 17:55, Luca Barbato wrote: > From: Vittorio Giovara <[email protected]> > > --- > libavcodec/xsubdec.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/libavcodec/xsubdec.c b/libavcodec/xsubdec.c > index d01b410..a7dd7ee 100644 > --- a/libavcodec/xsubdec.c > +++ b/libavcodec/xsubdec.c > @@ -95,7 +95,13 @@ static int decode_frame(AVCodecContext *avctx, void *data, > int *data_size, > > // allocate sub and set values > sub->rects = av_mallocz(sizeof(*sub->rects)); > + if (!sub->rects) > + return AVERROR(ENOMEM); > sub->rects[0] = av_mallocz(sizeof(*sub->rects[0])); > + if (!sub->rects[0]) { > + av_freep(&sub->rects); > + return AVERROR(ENOMEM); > + } > sub->num_rects = 1; > sub->rects[0]->x = x; sub->rects[0]->y = y; > sub->rects[0]->w = w; sub->rects[0]->h = h; > @@ -104,6 +110,13 @@ static int decode_frame(AVCodecContext *avctx, void > *data, int *data_size, > sub->rects[0]->pict.data[0] = av_malloc(w * h); > sub->rects[0]->nb_colors = 4; > sub->rects[0]->pict.data[1] = av_mallocz(AVPALETTE_SIZE); > + if (!sub->rects[0]->pict.data[0] || !sub->rects[0]->pict.data[1]) { > + av_freep(&sub->rects[0]->pict.data[1]); > + av_freep(&sub->rects[0]->pict.data[0]); > + av_freep(&sub->rects[0]); > + av_freep(&sub->rects); > + return AVERROR(ENOMEM); > + } > > // read palette > for (i = 0; i < sub->rects[0]->nb_colors; i++) >
Looks Ok. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
