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