]> git.sesse.net Git - ffmpeg/commitdiff
Merge commit '7e01d48cfd168c3dfc663f03a3b6a98e0ecba328'
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>
Wed, 13 Apr 2016 16:30:42 +0000 (17:30 +0100)
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>
Wed, 13 Apr 2016 16:30:47 +0000 (17:30 +0100)
* commit '7e01d48cfd168c3dfc663f03a3b6a98e0ecba328':
  mov: Check the entries value when parsing dref boxes

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
1  2 
libavformat/mov.c

index 73bff0929b3e5a6a3d14a0a0a38f2e51cb62ebe7,9d271f89747f4ecffef801fa71311de824bb3617..42f88347717a050865beea99d3579e7805ef6f53
@@@ -515,11 -473,12 +515,13 @@@ static int mov_read_dref(MOVContext *c
  
      avio_rb32(pb); // version + flags
      entries = avio_rb32(pb);
-     if (entries >  (atom.size - 1) / MIN_DATA_ENTRY_BOX_SIZE + 1 ||
+     if (!entries ||
+         entries >  (atom.size - 1) / MIN_DATA_ENTRY_BOX_SIZE + 1 ||
          entries >= UINT_MAX / sizeof(*sc->drefs))
          return AVERROR_INVALIDDATA;
+     sc->drefs_count = 0;
      av_free(sc->drefs);
 +    sc->drefs_count = 0;
      sc->drefs = av_mallocz(entries * sizeof(*sc->drefs));
      if (!sc->drefs)
          return AVERROR(ENOMEM);