isomp4: recovery: add sanity check
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 20 Jan 2012 16:01:37 +0000 (17:01 +0100)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 20 Jan 2012 16:10:44 +0000 (17:10 +0100)
... on possibly bogus/corrupt input data.

gst/isomp4/atomsrecovery.c

index 1190ec1..1d53ed8 100644 (file)
@@ -681,6 +681,13 @@ moov_recov_file_create (FILE * file, GError ** err)
     goto fail;
   }
 
+  /* sanity check */
+  if (moovrf->num_traks > 1024) {
+    g_set_error (err, ATOMS_RECOV_QUARK, ATOMS_RECOV_ERR_PARSING,
+        "Unsupported number of traks");
+    goto fail;
+  }
+
   /* init the traks */
   moovrf->traks_rd = g_new0 (TrakRecovData, moovrf->num_traks);
   for (i = 0; i < moovrf->num_traks; i++) {