On Mon, Feb 12, 2018 at 1:56 PM, Gang Fan(范刚) <fan.gang...@gmail.com> wrote: > Thanks to Hendrik > Here is the new patch: > > From 642a413080f20f9515321e42056248e86e003997 Mon Sep 17 00:00:00 2001 > From: Fan Gang <fang...@sbrella.com> > Date: Mon, 12 Feb 2018 20:55:06 +0800 > Subject: [PATCH] avcodec/ass: Fix a memory leak defect when realloc fails. > > --- > libavcodec/ass_split.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/ass_split.c b/libavcodec/ass_split.c > index 872528b..eebe239 100644 > --- a/libavcodec/ass_split.c > +++ b/libavcodec/ass_split.c > @@ -249,7 +249,7 @@ static const char *ass_split_section(ASSSplitContext > *ctx, const char *buf) > const ASSSection *section = &ass_sections[ctx->current_section]; > int *number = &ctx->field_number[ctx->current_section]; > int *order = ctx->field_order[ctx->current_section]; > - int *tmp, i, len; > + int i, len; > > while (buf && *buf) { > if (buf[0] == '[') { > @@ -280,9 +280,7 @@ static const char *ass_split_section(ASSSplitContext > *ctx, const char *buf) > while (!is_eol(*buf)) { > buf = skip_space(buf); > len = strcspn(buf, ", \r\n"); > - if (!(tmp = av_realloc_array(order, (*number + 1), > sizeof(*order)))) > - return NULL; > - order = tmp; > + av_reallocp_array(&order, (*number + 1), > sizeof(*order)); > order[*number] = -1; > for (i=0; section->fields[i].name; i++) > if (!strncmp(buf, section->fields[i].name, len)) { > -- > 1.9.1 > >
Allocation can still fail, so you shouldn't remove the check - just need to change it, since it returns 0 for success, negative for failure. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel