summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/lcms/files/lcms-2.9-BE-test.patch')
-rw-r--r--media-libs/lcms/files/lcms-2.9-BE-test.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/media-libs/lcms/files/lcms-2.9-BE-test.patch b/media-libs/lcms/files/lcms-2.9-BE-test.patch
new file mode 100644
index 000000000000..577c77cc2b84
--- /dev/null
+++ b/media-libs/lcms/files/lcms-2.9-BE-test.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/638192
+
+From 8aca404f486429e2304bd6572c2a6fb89e43cf2d Mon Sep 17 00:00:00 2001
+From: Marti Maria <info@littlecms.com>
+Date: Mon, 20 Nov 2017 21:59:38 +0100
+Subject: [PATCH] fix for big endian MLU bug
+
+Thanks to Sergei Trofimovic for the fix
+---
+ AUTHORS | 1 +
+ src/cmsnamed.c | 20 ++++++--------------
+ 2 files changed, 7 insertions(+), 14 deletions(-)
+
+diff --git a/src/cmsnamed.c b/src/cmsnamed.c
+index 95dc18b..773e4d2 100644
+--- a/src/cmsnamed.c
++++ b/src/cmsnamed.c
+@@ -183,27 +183,19 @@ cmsBool AddMLUBlock(cmsMLU* mlu, cmsUInt32Number size, const wchar_t *Block,
+
+ static
+ cmsUInt16Number strTo16(const char str[3])
+-{
++{
+ const cmsUInt8Number* ptr8 = (const cmsUInt8Number*)str;
+- cmsUInt16Number n = (cmsUInt16Number) (((cmsUInt16Number) ptr8[1] << 8) | ptr8[0]);
++ cmsUInt16Number n = (cmsUInt16Number)(((cmsUInt16Number)ptr8[0] << 8) | ptr8[1]);
+
+- return _cmsAdjustEndianess16(n);
++ return n;
+ }
+
+ static
+ void strFrom16(char str[3], cmsUInt16Number n)
+ {
+- // Assuming this would be aligned
+- union {
+-
+- cmsUInt16Number n;
+- cmsUInt8Number str[2];
+-
+- } c;
+-
+- c.n = _cmsAdjustEndianess16(n);
+-
+- str[0] = (char) c.str[0]; str[1] = (char) c.str[1]; str[2] = (char) 0;
++ str[0] = (char)(n >> 8);
++ str[1] = (char)n;
++ str[2] = (char)0;
+
+ }
+
+--
+2.15.0
+