ffmpeg | branch: master | Andreas Rheinhardt <[email protected]> | Fri Nov 20 17:36:39 2020 +0100| [029cf6a91ceb849f31f575111070a113c53b29ee] | committer: Andreas Rheinhardt
avformat/flacenc: Fix memleak when writing attached pictures fails The FLAC muxer currently stores an attached picture corresponding to an AVStream in AVStream.priv_data. The AVPacket contained therein is unreferenced after it has been written. The AVPacket structure itself is then freed generically as AVStream.priv_data. And this can lead to memleaks if an attached picture is not written: It might be because the trailer is never written or because writing a previous attached picture failed in case error_recognition is set to explode. Therefore free the packets properly (i.e. with av_packet_free()) in the muxer's deinit function. Signed-off-by: Andreas Rheinhardt <[email protected]> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=029cf6a91ceb849f31f575111070a113c53b29ee --- libavformat/flacenc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c index 6b8ce8d7ee..1c983486aa 100644 --- a/libavformat/flacenc.c +++ b/libavformat/flacenc.c @@ -347,6 +347,8 @@ static void flac_deinit(struct AVFormatContext *s) FlacMuxerContext *c = s->priv_data; avpriv_packet_list_free(&c->queue, &c->queue_end); + for (unsigned i = 0; i < s->nb_streams; i++) + av_packet_free((AVPacket **)&s->streams[i]->priv_data); } static int flac_write_packet(struct AVFormatContext *s, AVPacket *pkt) _______________________________________________ ffmpeg-cvslog mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
