---
 libavformat/asfdec.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index 467adec..a52ea0b 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -777,6 +777,8 @@ static int asf_read_stream_properties(AVFormatContext *s, 
const GUIDParseTable *
                 asf_st->span              = span;
                 asf_st->virtual_pkt_len   = avio_rl16(pb);
                 asf_st->virtual_chunk_len = avio_rl16(pb);
+                if (!asf_st->virtual_chunk_len || !asf_st->virtual_pkt_len)
+                    return AVERROR_INVALIDDATA;
                 avio_skip(pb, err_data_len - 5);
             } else
                 avio_skip(pb, err_data_len - 1);
@@ -1425,6 +1427,7 @@ static int asf_read_packet(AVFormatContext *s, AVPacket 
*pkt)
             ASFPacket *asf_pkt = &asf->asf_st[i]->pkt;
             if (asf_pkt && !asf_pkt->size_left && asf_pkt->data_size) {
                 if (asf->asf_st[i]->span > 1 &&
+                    asf->asf_st[i]->virtual_pkt_len &&
                     asf->asf_st[i]->type == AVMEDIA_TYPE_AUDIO)
                     if ((ret = asf_deinterleave(s, asf_pkt, i)) < 0)
                         return ret;
-- 
2.0.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to