summaryrefslogtreecommitdiff
path: root/third_party/lcms/0001-from16-to-8-overflow.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/lcms/0001-from16-to-8-overflow.patch')
-rw-r--r--third_party/lcms/0001-from16-to-8-overflow.patch13
1 files changed, 13 insertions, 0 deletions
diff --git a/third_party/lcms/0001-from16-to-8-overflow.patch b/third_party/lcms/0001-from16-to-8-overflow.patch
new file mode 100644
index 0000000000..9d31c84b36
--- /dev/null
+++ b/third_party/lcms/0001-from16-to-8-overflow.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/lcms/src/lcms2_internal.h b/third_party/lcms/src/lcms2_internal.h
+index 8617e92..cc76d48 100644
+--- a/third_party/lcms/src/lcms2_internal.h
++++ b/third_party/lcms/src/lcms2_internal.h
+@@ -94,7 +94,7 @@
+
+ // A fast way to convert from/to 16 <-> 8 bits
+ #define FROM_8_TO_16(rgb) (cmsUInt16Number) ((((cmsUInt16Number) (rgb)) << 8)|(rgb))
+-#define FROM_16_TO_8(rgb) (cmsUInt8Number) ((((rgb) * 65281 + 8388608) >> 24) & 0xFF)
++#define FROM_16_TO_8(rgb) (cmsUInt8Number) ((((cmsUInt32Number)(rgb) * 65281U + 8388608U) >> 24) & 0xFFU)
+
+ // Code analysis is broken on asserts
+ #ifdef _MSC_VER