Browse Source

qt-faststart: Abort scanning of the input file if a badly sized atom is encountered

If the atom size is 0, qt-faststart currently hangs forever while scanning
the file.

Originally committed as revision 23129 to svn://svn.ffmpeg.org/ffmpeg/trunk
Martin Storsjö 15 years ago
parent
commit
86e09922a5
1 changed files with 6 additions and 0 deletions
  1. 6 0
      tools/qt-faststart.c

+ 6 - 0
tools/qt-faststart.c

@@ -163,6 +163,12 @@ int main(int argc, char *argv[])
             break;
         }
         atom_offset += atom_size;
+
+        /* The atom header is 8 (or 16 bytes), if the atom size (which
+         * includes these 8 or 16 bytes) is less than that, we won't be
+         * able to continue scanning sensibly after this atom, so break. */
+        if (atom_size < 8)
+            break;
     }
 
     if (atom_type != MOOV_ATOM) {