mozilla-bmo1573381.patch
branchfirefox68
changeset 1101 a4709640638e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bmo1573381.patch	Thu Sep 05 08:03:30 2019 +0200
@@ -0,0 +1,22 @@
+# HG changeset patch
+# Parent  45680ce4ca06795cbca1ea5a9ae8a7a11ab95cf1
+The code tries to find a codec in a list of codecs. For this it searches for a given prefix.
+But the prefix is of type char16_t, which means 2 bytes per character instead of 1, as was compared here.
+On big endian this created some false positives, as the order of bytes is different and some characters only
+occupy "the first" byte, having the second null'ed out.
+Noticed because of gtest: MediaMIMETypes.MediaCodecs
+
+Upstream bugreport: https://bugzilla.mozilla.org/show_bug.cgi?id=1573381
+
+diff -r 45680ce4ca06 -r 381102061fcc dom/media/MediaMIMETypes.cpp
+--- a/dom/media/MediaMIMETypes.cpp	Mon Aug 05 09:28:53 2019 +0200
++++ b/dom/media/MediaMIMETypes.cpp	Tue Aug 13 07:51:27 2019 +0200
+@@ -87,7 +87,7 @@
+   const size_t prefixLength = aCodecPrefix.Length();
+   for (const auto& myCodec : Range()) {
+     if (myCodec.Length() >= prefixLength &&
+-        memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength) == 0) {
++        memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength * sizeof(char16_t)) == 0) {
+       return true;
+     }
+   }