Bug 1329568 - Restrict MediaMIMEType to IsMediaMIMEType-checked strings - r?jya draft
authorGerald Squelart <gsquelart@mozilla.com>
Tue, 03 Jan 2017 22:07:11 +1100
changeset 460518 110ce695f7057f217500b21080fdc27fbde9fbad
parent 460517 3a53b24e7dd9ef53f4b96ac85d81ebf0fc675ce5
child 460519 e91da7a55bd4b0b1416ead92cdb3d0c9bcd865da
push id41406
push usergsquelart@mozilla.com
push dateFri, 13 Jan 2017 06:23:59 +0000
reviewersjya
bugs1329568
milestone53.0a1
Bug 1329568 - Restrict MediaMIMEType to IsMediaMIMEType-checked strings - r?jya Use IsMediaMIMEType to refuse MIME types that cannot possibly be media-related. MozReview-Commit-ID: JXhf1biL4L0
dom/media/MediaMIMETypes.cpp
--- a/dom/media/MediaMIMETypes.cpp
+++ b/dom/media/MediaMIMETypes.cpp
@@ -23,16 +23,19 @@ MakeMediaMIMEType(const nsAString& aType
   nsContentTypeParser parser(aType);
   nsAutoString mime;
   nsresult rv = parser.GetType(mime);
   if (!NS_SUCCEEDED(rv) || mime.IsEmpty()) {
     return Nothing();
   }
 
   NS_ConvertUTF16toUTF8 mime8{mime};
+  if (!IsMediaMIMEType(mime8)) {
+    return Nothing();
+  }
 
   return Some(MediaMIMEType(mime8));
 }
 
 Maybe<MediaMIMEType>
 MakeMediaMIMEType(const nsACString& aType)
 {
   return MakeMediaMIMEType(NS_ConvertUTF8toUTF16(aType));
@@ -98,16 +101,19 @@ MakeMediaExtendedMIMEType(const nsAStrin
   nsContentTypeParser parser(aType);
   nsAutoString mime;
   nsresult rv = parser.GetType(mime);
   if (!NS_SUCCEEDED(rv) || mime.IsEmpty()) {
     return Nothing();
   }
 
   NS_ConvertUTF16toUTF8 mime8{mime};
+  if (!IsMediaMIMEType(mime8)) {
+    return Nothing();
+  }
 
   nsAutoString codecs;
   rv = parser.GetParameter("codecs", codecs);
   bool haveCodecs = NS_SUCCEEDED(rv);
 
   int32_t width = GetParameterAsNumber(parser, "width", -1);
   int32_t height = GetParameterAsNumber(parser, "height", -1);
   int32_t framerate = GetParameterAsNumber(parser, "framerate", -1);