aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-03-24 03:23:37 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-04-02 21:37:00 +0200
commita01cf1fe5410f7db7a473821369506e27cf60044 (patch)
tree9d598535dd606a84cc2d1887b6fb256f5216244e /libavformat
parentfe8ae687389fdbd3ec91b2d2d25ce7e6ad846f39 (diff)
downloadffmpeg-a01cf1fe5410f7db7a473821369506e27cf60044.tar.gz
avformat/aadec: Fix leak on error
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> (cherry picked from commit 3ec3370deac4d21538ef03d8547a12f3acb7bfa8)
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/aadec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavformat/aadec.c b/libavformat/aadec.c
index 80ca2c12d7..2575e98153 100644
--- a/libavformat/aadec.c
+++ b/libavformat/aadec.c
@@ -229,8 +229,11 @@ static int aa_read_header(AVFormatContext *s)
chapter_pos -= start + CHAPTER_HEADER_SIZE * chapter_idx;
avio_skip(pb, 4 + chapter_size);
if (!avpriv_new_chapter(s, chapter_idx, st->time_base,
- chapter_pos * TIMEPREC, (chapter_pos + chapter_size) * TIMEPREC, NULL))
- return AVERROR(ENOMEM);
+ chapter_pos * TIMEPREC,
+ (chapter_pos + chapter_size) * TIMEPREC, NULL)) {
+ av_freep(&c->tea_ctx);
+ return AVERROR(ENOMEM);
+ }
}
st->duration = (largest_size - CHAPTER_HEADER_SIZE * s->nb_chapters) * TIMEPREC;