icu/icu.icu5500.devicetablecrash.patch
2006-11-08 09:18:58 +00:00

12 lines
536 B
Diff

--- icu.orig/source/layout/DeviceTables.cpp 2006-10-18 09:05:20.000000000 +0100
+++ icu/source/layout/DeviceTables.cpp 2006-11-08 09:08:09.000000000 +0000
@@ -22,7 +22,7 @@
le_uint16 format = SWAPW(deltaFormat) - 1;
le_int16 result = 0;
- if (ppem >= start && ppem <= SWAPW(endSize)) {
+ if (ppem >= start && ppem <= SWAPW(endSize) && format < sizeof(fieldBits)/sizeof(fieldBits[0])) {
le_uint16 sizeIndex = ppem - start;
le_uint16 bits = fieldBits[format];
le_uint16 count = 16 / bits;