aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2019-11-21 07:17:19 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-07-01 22:34:44 +0200
commit26ceb54a28d5d3c411e5eab6ba7a18571d3e076c (patch)
tree6cd99d1acdfe7f311ad5d6b43dbd971690f8038d
parentd2b434001fb73bb6b5ee4fb3180d8a57c788395b (diff)
downloadffmpeg-26ceb54a28d5d3c411e5eab6ba7a18571d3e076c.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> (cherry picked from commit 27c6c925344e00c1a72ba8bb2b5cdd32cb1a2655) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r--libavformat/av1.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/av1.c b/libavformat/av1.c
index 5fde8df97e..8d80682b24 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);