On 26/05/15 15:24, Vittorio Giovara wrote:
From: Andreas Cadhalpun <[email protected]>

Otherwise the loop can take a lot of time if num_descr is very large.

Signed-off-by: Andreas Cadhalpun <[email protected]>
---
  libavformat/mov_chan.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/libavformat/mov_chan.c b/libavformat/mov_chan.c
index 2c54920..94b93cf 100644
--- a/libavformat/mov_chan.c
+++ b/libavformat/mov_chan.c
@@ -565,6 +565,11 @@ int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, 
AVStream *st,
      label_mask = 0;
      for (i = 0; i < num_descr; i++) {
          uint32_t label;
+        if (pb->eof_reached) {
+            av_log(s, AV_LOG_ERROR,
+                   "reached EOF while reading channel layout\n");
+            return AVERROR_INVALIDDATA;
+        }
          label     = avio_rb32(pb);          // mChannelLabel
          avio_rb32(pb);                      // mChannelFlags
          avio_rl32(pb);                      // mCoordinates[0]


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

Reply via email to