Here is the patch. On Tue, Feb 13, 2018 at 3:30 PM, Gang Fan(范刚) <fan.gang...@gmail.com> wrote:
> Thanks for the advice, let me have another try. > > On Tue, Feb 13, 2018 at 4:59 AM, wm4 <nfx...@googlemail.com> wrote: > >> On Mon, 12 Feb 2018 20:56:25 +0800 >> 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(ASSSplitCon >> text >> > *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(ASSSplitCon >> text >> > *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)) { >> >> The patch formatting is broken (line breaks). It will be cumbersome to >> apply it, which most likely will mean nobody is going to try. >> >> Never copy&paste a patch into the text field of your email client. >> Instead you should do one of these things: >> >> - just attach the patch as text attachment >> - use git send-email >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > > > -- > > > *With kind regards* > -- *With kind regards*
From 5c66208ebdf94a854fdae823e58b164f2f8056b1 Mon Sep 17 00:00:00 2001 From: Fan Gang <fang...@sbrella.com> Date: Tue, 13 Feb 2018 15:38:59 +0800 Subject: [PATCH] avcodec/ass: Fix a memory leak defect when realloc fails. --- libavcodec/ass_split.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/ass_split.c b/libavcodec/ass_split.c index 872528b..67da7c6 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,9 @@ 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)))) + if (av_reallocp_array(&order, (*number + 1), sizeof(*order)) != 0) return NULL; - order = tmp; + order[*number] = -1; for (i=0; section->fields[i].name; i++) if (!strncmp(buf, section->fields[i].name, len)) { -- 1.9.1
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel