diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2019-11-21 07:17:19 +0100 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2019-11-22 00:09:05 -0300 |
commit | 27c6c925344e00c1a72ba8bb2b5cdd32cb1a2655 (patch) | |
tree | 9ab4fc7e210525cc560f17906b5013a8655a677d | |
parent | 9cd56bb94c857d23194628953169d5d2de073ce0 (diff) | |
download | ffmpeg-27c6c925344e00c1a72ba8bb2b5cdd32cb1a2655.tar.gz |
avformat/av1: Fix leak of dynamic buffer in case of parsing failure
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | libavformat/av1.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/av1.c b/libavformat/av1.c index b36c5e44ba..03669dfd2a 100644 --- a/libavformat/av1.c +++ b/libavformat/av1.c @@ -26,6 +26,7 @@ #include "libavcodec/put_bits.h" #include "av1.h" #include "avio.h" +#include "avio_internal.h" int ff_av1_filter_obus(AVIOContext *pb, const uint8_t *buf, int size) { @@ -67,8 +68,10 @@ int ff_av1_filter_obus_buf(const uint8_t *buf, uint8_t **out, int *size) return ret; ret = ff_av1_filter_obus(pb, buf, *size); - if (ret < 0) + if (ret < 0) { + ffio_free_dyn_buf(&pb); return ret; + } av_freep(out); *size = avio_close_dyn_buf(pb, out); |