[FFmpeg-devel] [PATCH 08/11] avformat/dashenc: Fix leak of AVFormatContext on error

Michael Niedermayer michael at niedermayer.cc
Wed Jan 8 02:38:23 EET 2020


On Tue, Jan 07, 2020 at 04:03:15PM +0000, Jeyapal, Karthick wrote:
> 
> On 1/7/20 7:25 PM, Andreas Rheinhardt wrote:
> > The Dash muxer uses submuxers and when one such submuxer has been allocated,
> > it is initially only stored in a temporary variable. Therefore it leaks
> > if an error happens between the allocation and storing it permanently.
> > This commit changes this.
> >
> > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> > ---
> >  libavformat/dashenc.c | 9 ++++-----
> >  1 file changed, 4 insertions(+), 5 deletions(-)
> >
> > diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> > index b84736881f..dab7010179 100644
> > --- a/libavformat/dashenc.c
> > +++ b/libavformat/dashenc.c
> > @@ -1225,10 +1225,6 @@ static int dash_init(AVFormatContext *s)
> >          dict_copy_entry(&as->metadata, s->streams[i]->metadata, "language");
> >          dict_copy_entry(&as->metadata, s->streams[i]->metadata, "role");
> >  
> > -        ctx = avformat_alloc_context();
> > -        if (!ctx)
> > -            return AVERROR(ENOMEM);
> > -
> >          if (c->init_seg_name) {
> >              os->init_seg_name = av_strireplace(c->init_seg_name, "$ext$", os->extension_name);
> >              if (!os->init_seg_name)
> > @@ -1261,10 +1257,13 @@ static int dash_init(AVFormatContext *s)
> >              }
> >          }
> >  
> > +        os->ctx = ctx = avformat_alloc_context();
> > +        if (!ctx)
> > +            return AVERROR(ENOMEM);
> > +
> >          ctx->oformat = av_guess_format(os->format_name, NULL, NULL);
> >          if (!ctx->oformat)
> >              return AVERROR_MUXER_NOT_FOUND;
> > -        os->ctx = ctx;
> >          ctx->interrupt_callback    = s->interrupt_callback;
> >          ctx->opaque                = s->opaque;
> >          ctx->io_close              = s->io_close;
> LGTM

will apply

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No snowflake in an avalanche ever feels responsible. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20200108/fb61d91b/attachment.sig>


More information about the ffmpeg-devel mailing list