Browse Source

avformat/avidec: Fix memleak when allocating DVDemuxContext fails

An AVIStream (intended to be used as private data for an AVStream) would
leak in this scenario.

Also return a more fitting error code instead of AVERROR_INVALIDDATA.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.3
Andreas Rheinhardt 6 years ago
parent
commit
de0b04551d
1 changed files with 6 additions and 3 deletions
  1. +6
    -3
      libavformat/avidec.c

+ 6
- 3
libavformat/avidec.c View File

@@ -605,9 +605,12 @@ static int avi_read_header(AVFormatContext *s)
ast = s->streams[0]->priv_data;
st->priv_data = NULL;
ff_free_stream(s, st);
avi->dv_demux = avpriv_dv_init_demux(s);
if (!avi->dv_demux)
goto fail;

avi->dv_demux = avpriv_dv_init_demux(s);
if (!avi->dv_demux) {
av_free(ast);
return AVERROR(ENOMEM);
}

s->streams[0]->priv_data = ast;
avio_skip(pb, 3 * 4);


Loading…
Cancel
Save