[FFmpeg-devel] [PATCH] avformat/fifo: Free dict on av_dict_copy() failure

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Jul 29 00:38:45 EEST 2021


av_dict_copy() puts the onus on the caller to clean up dst on failure;
it can be nonempty if copying a later entry of src fails after having
successfully copied an earlier entry.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
It seems that av_dict_copy() together with the
AV_DICT_DONT_STRDUP_KEY/VAL flags creates zombie src AVDictionaries.

 libavformat/fifo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/fifo.c b/libavformat/fifo.c
index a9b59b6589..10511167cd 100644
--- a/libavformat/fifo.c
+++ b/libavformat/fifo.c
@@ -129,7 +129,7 @@ static int fifo_thread_write_header(FifoThreadContext *ctx)
 
     ret = av_dict_copy(&format_options, fifo->format_options, 0);
     if (ret < 0)
-        return ret;
+        goto end;
 
     ret = ff_format_output_open(avf2, avf->url, &format_options);
     if (ret < 0) {
-- 
2.30.2



More information about the ffmpeg-devel mailing list