[FFmpeg-cvslog] avformat/movenccenc: Fix memory leak for muxing CENC-encrypted files

Vadym Bezdushnyi git at videolan.org
Sat Feb 27 23:13:58 EET 2021


ffmpeg | branch: master | Vadym Bezdushnyi <vadim.bezdush at gmail.com> | Sun Jan 31 16:52:45 2021 +0200| [bc04ea39a57a22dd4d26946a83e166f090218054] | committer: Marton Balint

avformat/movenccenc: Fix memory leak for muxing CENC-encrypted files

Memory for auxillary_info was not freed after usage.

Leak can be reproduced with following commands:

Optionally, generate input video:
ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 input.mp4

Run ffmpeg with valgrind:
valgrind --leak-check=full --show-leak-kinds=all \
ffmpeg -y -i input.mp4 -vcodec copy -acodec copy \
-encryption_scheme cenc-aes-ctr \
-encryption_key 00000000000000000000000000000000 \
-encryption_kid 00000000000000000000000000000000 \
ffmpeg_encrypted.mp4

For test video which has duration of 10 sec, leak is 4 Kb.
For 100 sec video, leak will be 33 Kb. Most likely,
leaked memory will grow linearly to the number of input frames.

Signed-off-by: Vadym Bezdushnyi <vadim.bezdush at gmail.com>
Signed-off-by: Marton Balint <cus at passwd.hu>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bc04ea39a57a22dd4d26946a83e166f090218054
---

 libavformat/movenccenc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/movenccenc.c b/libavformat/movenccenc.c
index b91294f706..74f3c4ccfb 100644
--- a/libavformat/movenccenc.c
+++ b/libavformat/movenccenc.c
@@ -412,4 +412,6 @@ int ff_mov_cenc_init(MOVMuxCencContext* ctx, uint8_t* encryption_key,
 void ff_mov_cenc_free(MOVMuxCencContext* ctx)
 {
     av_aes_ctr_free(ctx->aes_ctr);
+    av_freep(&ctx->auxiliary_info);
+    av_freep(&ctx->auxiliary_info_sizes);
 }



More information about the ffmpeg-cvslog mailing list