diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2017-11-25 19:22:51 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2017-12-07 23:38:06 +0100 |
commit | 3ae71b648ad041cacd10db5be220eb2aeda2869b (patch) | |
tree | de8a7010500f17ddf5200c492774ccd82ff1e871 | |
parent | f2f0273588ed17e7b3824bd541a6aabf3121e4b4 (diff) | |
download | ffmpeg-3ae71b648ad041cacd10db5be220eb2aeda2869b.tar.gz |
avformat/aacdec: Fix leak in adts_aac_read_packet()
Fixes: chromium-773637/clusterfuzz-testcase-minimized-6418078673141760
Found-by: ossfuzz/chromium
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2779d33ed99898675e0b3884fabe1ce6839f36d1)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavformat/aacdec.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c index 364b33404f..36d558ff54 100644 --- a/libavformat/aacdec.c +++ b/libavformat/aacdec.c @@ -139,7 +139,11 @@ static int adts_aac_read_packet(AVFormatContext *s, AVPacket *pkt) return AVERROR_INVALIDDATA; } - return av_append_packet(s->pb, pkt, fsize - ADTS_HEADER_SIZE); + ret = av_append_packet(s->pb, pkt, fsize - ADTS_HEADER_SIZE); + if (ret < 0) + av_packet_unref(pkt); + + return ret; } AVInputFormat ff_aac_demuxer = { |