< prev index next >

modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-good/gst/isomp4/qtdemux.c

Print this page
rev 11235 : imported patch 13.patch

@@ -9946,10 +9946,18 @@
     }
   }
 
   stream->stsd_entries_length = stsd_entry_count = QT_UINT32 (stsd_data + 12);
   stream->stsd_entries = g_new0 (QtDemuxStreamStsdEntry, stsd_entry_count);
+#ifdef GSTREAMER_LITE
+  // Even if we check stsd header length (stsd_len) to make sure we have at least
+  // one entry, we still might have actual entry count set to 0. g_new0() will
+  // return NULL if fail or count is 0.
+  if (stream->stsd_entries == NULL) {
+    goto corrupt_file;
+  }
+#endif // GSTREAMER_LITE
   GST_LOG_OBJECT (qtdemux, "stsd len:           %d", stsd_len);
   GST_LOG_OBJECT (qtdemux, "stsd entry count:   %u", stsd_entry_count);
 
   stsd_entry_data = stsd_data + 16;
   remaining_stsd_len = stsd_len - 16;
< prev index next >