Nikolay Sivov : dwrite: Disallow recursing to reverse chaining substitution.

Alexandre Julliard julliard at winehq.org
Tue Jun 9 15:27:47 CDT 2020


Module: wine
Branch: master
Commit: fb5eec2c1eb8cffaa5ee1902469735baa7b404c2
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=fb5eec2c1eb8cffaa5ee1902469735baa7b404c2

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Jun  9 12:14:34 2020 +0300

dwrite: Disallow recursing to reverse chaining substitution.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dwrite/opentype.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c
index 22ae106924..e502be1e12 100644
--- a/dlls/dwrite/opentype.c
+++ b/dlls/dwrite/opentype.c
@@ -5482,6 +5482,9 @@ static BOOL opentype_layout_apply_gsub_reverse_chain_context_substitution(struct
     unsigned int offset = subtable_offset;
     UINT16 glyph, format;
 
+    if (context->nesting_level_left != SHAPE_MAX_NESTING_LEVEL)
+        return FALSE;
+
     glyph = context->u.subst.glyphs[context->cur];
 
     format = table_read_be_word(table, offset);




More information about the wine-cvs mailing list