aboutsummaryrefslogtreecommitdiff
path: root/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp
diff options
context:
space:
mode:
authorprr <none@none>2013-04-26 15:06:51 -0700
committerprr <none@none>2013-04-26 15:06:51 -0700
commitcda326cc113050a4bf184fe2fc0342ec4402acd9 (patch)
tree5d8632bdb1ea0f280a0803a45cbea41ea074c1e6 /src/share/native/sun/font/layout/MultipleSubstSubtables.cpp
parentc34b83adc536d008df7b14af78a7e0e88c10fa49 (diff)
8012617: ArrayIndexOutOfBoundsException with some fonts using LineBreakMeasurer
Reviewed-by: bae, srl
Diffstat (limited to 'src/share/native/sun/font/layout/MultipleSubstSubtables.cpp')
-rw-r--r--src/share/native/sun/font/layout/MultipleSubstSubtables.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp b/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp
index 9d72ca8a1..af94e623b 100644
--- a/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp
+++ b/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp
@@ -61,6 +61,10 @@ le_uint32 MultipleSubstitutionSubtable::process(const LETableReference &base, Gl
le_int32 coverageIndex = getGlyphCoverage(base, glyph, success);
le_uint16 seqCount = SWAPW(sequenceCount);
+ if (LE_FAILURE(success)) {
+ return 0;
+ }
+
if (coverageIndex >= 0 && coverageIndex < seqCount) {
Offset sequenceTableOffset = SWAPW(sequenceTableOffsetArray[coverageIndex]);
const SequenceTable *sequenceTable = (const SequenceTable *) ((char *) this + sequenceTableOffset);