diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-12-15 01:32:48 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-12-15 01:44:04 +0100 |
commit | 6f9be9106382083b2268ddb3599fbf49abb36f6b (patch) | |
tree | 236395e426defa92c9fd5be287db5e918326faa8 /libavformat | |
parent | 2b31a9c613f95383d5106f8c1cbcee8eb291090f (diff) | |
download | ffmpeg-6f9be9106382083b2268ddb3599fbf49abb36f6b.tar.gz |
avformat/iff: fix memleak of packet
Fixes: msan_uninit-mem_7f65b9788da6_388_24.iff
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/iff.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libavformat/iff.c b/libavformat/iff.c index 03c4b08762..b5751c5664 100644 --- a/libavformat/iff.c +++ b/libavformat/iff.c @@ -462,7 +462,9 @@ static int iff_read_packet(AVFormatContext *s, buf = pkt->data; bytestream_put_be16(&buf, 2); ret = avio_read(pb, buf, iff->body_size); - if (ret>=0 && ret < iff->body_size) + if (ret<0) { + av_free_packet(pkt); + } else if (ret < iff->body_size) av_shrink_packet(pkt, ret + 2); } else { av_assert0(0); |