From: Alexandra Hájková <[email protected]>

---
Rebased patch.

 libavformat/asfdec.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index 17ea89f..4a31be5 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -1737,7 +1737,15 @@ static int asf_read_header(AVFormatContext *s)
                 goto failed;
         } else {
             size = avio_rl64(pb);
-            align_position(pb, asf->offset, size);
+            if (size < INT64_MAX)
+                align_position(pb, asf->offset, size);
+            else {
+                if (asf->data_reached) {
+                    avio_seek(pb, asf->first_packet_offset, SEEK_SET);
+                    break;
+                } else
+                    return AVERROR_INVALIDDATA;
+            }
         }
         if (asf->data_reached && (!pb->seekable || (asf->b_flags & 
ASF_FLAG_BROADCAST)))
             break;
-- 
2.1.4

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

Reply via email to