summaryrefslogtreecommitdiff
path: root/libavformat/swfdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-12-19 01:48:15 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-19 01:49:07 +0100
commitfde74d1b9d338e2f9c9d7eac2023388d59c98543 (patch)
tree96d11198d977cde36131a4fb3c9c14b791f92129 /libavformat/swfdec.c
parent8eb76217d0137b7adad438f6c923310fbc1fc4c1 (diff)
avformat/swfdec: check avio_read() return code
Fixes use of uninitialized memory Fixes msan_uninit-mem_7f90d9cce964_9558_videopop_guitar_300k.swf Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/swfdec.c')
-rw-r--r--libavformat/swfdec.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c
index e6ceec818a..c77e28f0c9 100644
--- a/libavformat/swfdec.c
+++ b/libavformat/swfdec.c
@@ -446,7 +446,10 @@ bitmap_end_skip:
goto skip;
if ((res = av_new_packet(pkt, len)) < 0)
return res;
- avio_read(pb, pkt->data, 4);
+ if (avio_read(pb, pkt->data, 4) != 4) {
+ av_free_packet(pkt);
+ return AVERROR_INVALIDDATA;
+ }
if (AV_RB32(pkt->data) == 0xffd8ffd9 ||
AV_RB32(pkt->data) == 0xffd9ffd8) {
/* old SWF files containing SOI/EOI as data start */