# 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; } }