summaryrefslogtreecommitdiff
path: root/libavformat/movenccenc.c
diff options
context:
space:
mode:
authorVadym Bezdushnyi <vadim.bezdush@gmail.com>2021-01-31 16:52:45 +0200
committerMarton Balint <cus@passwd.hu>2021-02-27 22:09:51 +0100
commitbc04ea39a57a22dd4d26946a83e166f090218054 (patch)
treea87f1fc5a2ad981f7e3ebee25d5d23fc2f3c6730 /libavformat/movenccenc.c
parent2d32aed85c4874a2596202b6f0c08e6ce49e3bca (diff)
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@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavformat/movenccenc.c')
-rw-r--r--libavformat/movenccenc.c2
1 files changed, 2 insertions, 0 deletions
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);
}