[FFmpeg-devel] [PATCH] libavformat/flvdec.c: free always the packet after a resync.
Thierry Foucu
tfoucu at gmail.com
Mon Sep 28 23:34:45 CEST 2015
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.
---
libavformat/flvdec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 16d25e9..a59c07d 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;
}
}
--
2.6.0.rc2.230.g3dd15c0
More information about the ffmpeg-devel
mailing list