Bug 1387801 - Reject invalid H264 content. r?gerald draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Sun, 06 Aug 2017 17:39:03 +0200
changeset 641268 5c6c7f0f79eadece0f5907cf3244aa1362d58f30
parent 615683 a28e337baece3653f3fd3aaac439c099da09e991
child 646452 e75a49608f51ca036c5e9dd264018c429f450ce4
child 647691 5e4a53a7fa9428ac658e27a8f2276dff8a96a08d
child 647723 35151b15d1326367771906e163abaf1fcf78f30f
child 648178 42df425823e9debac0c292d1c2f357d599abab5d
push id72484
push userbmo:jyavenard@mozilla.com
push dateSun, 06 Aug 2017 15:39:44 +0000
reviewersgerald
bugs1387801
milestone56.0a1
Bug 1387801 - Reject invalid H264 content. r?gerald MozReview-Commit-ID: 9m42TIYgis4
dom/media/platforms/wrappers/H264Converter.cpp
--- a/dom/media/platforms/wrappers/H264Converter.cpp
+++ b/dom/media/platforms/wrappers/H264Converter.cpp
@@ -69,16 +69,23 @@ H264Converter::Decode(MediaRawData* aSam
   if (!mp4_demuxer::AnnexB::ConvertSampleToAVCC(aSample)) {
     // We need AVCC content to be able to later parse the SPS.
     // This is a no-op if the data is already AVCC.
     return DecodePromise::CreateAndReject(
       MediaResult(NS_ERROR_OUT_OF_MEMORY, RESULT_DETAIL("ConvertSampleToAVCC")),
       __func__);
   }
 
+  if (!mp4_demuxer::AnnexB::IsAVCC(aSample)) {
+    return DecodePromise::CreateAndReject(
+      MediaResult(NS_ERROR_DOM_MEDIA_FATAL_ERR,
+                  RESULT_DETAIL("Invalid H264 content")),
+      __func__);
+  }
+
   nsresult rv;
   if (!mDecoder) {
     // It is not possible to create an AVCC H264 decoder without SPS.
     // As such, creation will fail if the extra_data just extracted doesn't
     // contain a SPS.
     rv = CreateDecoderAndInit(aSample);
     if (rv == NS_ERROR_NOT_INITIALIZED) {
       // We are missing the required SPS to create the decoder.