# HG changeset patch # User alitvinov # Date 1451473370 -10800 # Node ID 1d4b343084874b1afa1cdd504b9b1e50bab7f121 # Parent bbe81105875d467d0d27253e384ab124f6a6c4af# Parent 9a843dc6f959f62c61014a3a71ec9aa329f1daf1 Merge diff -r bbe81105875d -r 1d4b34308487 .hgtags --- a/.hgtags Mon Dec 21 10:56:08 2015 -0800 +++ b/.hgtags Wed Dec 30 14:02:50 2015 +0300 @@ -517,6 +517,7 @@ 8181f8b6ef0d861f57547c89e52f258cb5583b77 jdk8u71-b12 23a6e0931277e7d4278605f55db2c81fcb3907b0 jdk8u71-b13 1ad1d1b46fef8bf88f36b8d0fae6b51df2de7fb2 jdk8u71-b14 +06e7500086a69545a9f55bf5fec23969abe32c57 jdk8u71-b15 be5faa9c77042f202106c18f4e8ea211137b4a3b jdk8u72-b00 5ad1e9e8e8417f80c91d7e0f1f44cdf89b34ead3 jdk8u72-b01 ab0c1040414d038ccbcfcc8ceb1ccf2f44ead8e4 jdk8u72-b02 @@ -532,3 +533,4 @@ 8afb58c7312b45fe5237afb0292176b734934f60 jdk8u72-b12 d841d3fdae44f120883dab0a3a809a054cd0274b jdk8u72-b13 f6d24d424cd2af4d2612f7737d3d9a25f58b882d jdk8u72-b14 +f3e86cc607260bae368b52d88d7bc8883ee767e3 jdk8u72-b15 diff -r bbe81105875d -r 1d4b34308487 src/share/native/sun/font/layout/Features.cpp --- a/src/share/native/sun/font/layout/Features.cpp Mon Dec 21 10:56:08 2015 -0800 +++ b/src/share/native/sun/font/layout/Features.cpp Wed Dec 30 14:02:50 2015 +0300 @@ -43,9 +43,10 @@ LEReferenceToArrayOf featureRecordArrayRef(base, success, featureRecordArray, SWAPW(featureCount)); - if (featureIndex >= SWAPW(featureCount) || LE_FAILURE(success)) { - return LEReferenceTo(); - } + if (featureIndex >= SWAPW(featureCount) || LE_FAILURE(success)) { + success = LE_INDEX_OUT_OF_BOUNDS_ERROR; + return LEReferenceTo(); + } Offset featureTableOffset = featureRecordArray[featureIndex].featureTableOffset; diff -r bbe81105875d -r 1d4b34308487 src/share/native/sun/font/layout/Lookups.cpp --- a/src/share/native/sun/font/layout/Lookups.cpp Mon Dec 21 10:56:08 2015 -0800 +++ b/src/share/native/sun/font/layout/Lookups.cpp Wed Dec 30 14:02:50 2015 +0300 @@ -42,6 +42,7 @@ LEReferenceToArrayOf lookupTableOffsetArrayRef(base, success, (const Offset*)&lookupTableOffsetArray, SWAPW(lookupCount)); if(LE_FAILURE(success) || lookupTableIndex>lookupTableOffsetArrayRef.getCount()) { + success = LE_INDEX_OUT_OF_BOUNDS_ERROR; return LEReferenceTo(); } else { return LEReferenceTo(base, success, SWAPW(lookupTableOffsetArrayRef.getObject(lookupTableIndex, success))); @@ -53,6 +54,7 @@ LEReferenceToArrayOf subTableOffsetArrayRef(base, success, (const Offset*)&subTableOffsetArray, SWAPW(subTableCount)); if(LE_FAILURE(success) || subtableIndex>subTableOffsetArrayRef.getCount()) { + success = LE_INDEX_OUT_OF_BOUNDS_ERROR; return LEReferenceTo(); } else { return LEReferenceTo(base, success, SWAPW(subTableOffsetArrayRef.getObject(subtableIndex, success)));