changeset 48824:1189d9ea5725

8273748: Improve Solaris font rendering Reviewed-by: yan, andrew
author bae
date Thu, 06 Jan 2022 15:44:41 +0300
parents cd1e0b795fbd
children 7c8c4a447fe4
files jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp	Thu Dec 16 20:37:07 2021 +0300
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp	Thu Jan 06 15:44:41 2022 +0300
@@ -49,6 +49,11 @@
 {
     if(LE_FAILURE(success)) return;
     le_uint32 perGlyphTableOffset = SWAPL(contextualGlyphHeader->perGlyphTableOffset);
+    if (perGlyphTableOffset & 0x03) { // incorrect alignment for 32 bit tables
+        LE_DEBUG_BAD_FONT("perGlyphTableOffset: incorrect alignment");
+        success = LE_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
     perGlyphTable = LEReferenceToArrayOf<le_uint32> (stHeader, success, perGlyphTableOffset, LE_UNBOUNDED_ARRAY);
     entryTable = LEReferenceToArrayOf<ContextualGlyphStateEntry2>(stHeader, success, entryTableOffset, LE_UNBOUNDED_ARRAY);
 }