forked from pool/MozillaFirefox
e72a516450
* mozilla-bmo1504834-part1.patch * mozilla-bmo1504834-part2.patch * mozilla-bmo1504834-part3.patch * mozilla-bmo1511604.patch * mozilla-bmo1554971.patch * mozilla-bmo1573381.patch * mozilla-nestegg-big-endian.patch OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=763
23 lines
1.1 KiB
Diff
23 lines
1.1 KiB
Diff
# 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;
|
|
}
|
|
}
|