From 7f72f2d75e581abfe016600d003d1bbab99714f0 Mon Sep 17 00:00:00 2001 From: Thierry Foucu Date: Mon, 28 Sep 2015 14:34:45 -0700 Subject: [PATCH] libavformat/flvdec.c: free always the packet after a resync. In case of resync, always free the packet, but retry only if the resync did not get to the end of the file. Otherwise, there is a memory leak when the last packet in the file is corrupted. Signed-off-by: Michael Niedermayer --- libavformat/flvdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index 16d25e9cd6..a59c07d34a 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -1142,8 +1142,8 @@ leave: av_log(s, AV_LOG_ERROR, "Packet mismatch %d %d\n", last, orig_size + 11); avio_seek(s->pb, pos + 1, SEEK_SET); ret = resync(s); + av_free_packet(pkt); if (ret >= 0) { - av_free_packet(pkt); goto retry; } }