diff -r e1c5065a014f -r a4709640638e mozilla-bmo1573381.patch --- /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; + } + }