[FFmpeg-cvslog] avformat/audiointerleave: Fix memleak
Andreas Rheinhardt
git at videolan.org
Wed Apr 1 06:36:50 EEST 2020
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Fri Aug 9 03:43:57 2019 +0200| [7464a260983182a1603a8a5923fac0a0f0e17b5f] | committer: Andreas Rheinhardt
avformat/audiointerleave: Fix memleak
If ff_interleave_add_packet failed, the content of the newly created
packet new_pkt would leak.
Also, it is unnecessary to zero-initialize a packet that will be put
into av_new_packet lateron as the latter already initializes the packet.
Therefore this has been removed, too.
Reviewed-by: Marton Balint <cus at passwd.hu>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7464a260983182a1603a8a5923fac0a0f0e17b5f
---
libavformat/audiointerleave.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libavformat/audiointerleave.c b/libavformat/audiointerleave.c
index 2e83031bd6..f10c83d7c9 100644
--- a/libavformat/audiointerleave.c
+++ b/libavformat/audiointerleave.c
@@ -134,10 +134,12 @@ int ff_audio_rechunk_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt
for (i = 0; i < s->nb_streams; i++) {
AVStream *st = s->streams[i];
if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
- AVPacket new_pkt = { 0 };
+ AVPacket new_pkt;
while ((ret = interleave_new_audio_packet(s, &new_pkt, i, flush)) > 0) {
- if ((ret = ff_interleave_add_packet(s, &new_pkt, compare_ts)) < 0)
+ if ((ret = ff_interleave_add_packet(s, &new_pkt, compare_ts)) < 0) {
+ av_packet_unref(&new_pkt);
return ret;
+ }
}
if (ret < 0)
return ret;
More information about the ffmpeg-cvslog
mailing list