Module: wine
Branch: oldstable
Commit: 4f52f64efc774cc480176247dc931ae1b806ad05
URL: https://gitlab.winehq.org/wine/wine/-/commit/4f52f64efc774cc480176247dc931a…
Author: Jinoh Kang <jinoh.kang.kr(a)gmail.com>
Date: Tue Jul 12 02:28:15 2022 +0900
riched20: Ensure MEPF_COMPLEX is unset when in password input mode.
Otherwise, Wine may crash while attempting to fetch the script shaping
information, which does not exist since shape_para() was not called.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53335
Signed-off-by: Jinoh Kang <jinoh.kang.kr(a)gmail.com>
(cherry picked from commit f77f12ba3b1dad9ebdcb116c66b137e9103a0d1b)
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/riched20/wrap.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c
index 9456d54d815..a2747806127 100644
--- a/dlls/riched20/wrap.c
+++ b/dlls/riched20/wrap.c
@@ -835,6 +835,15 @@ static void ME_WrapTextParagraph( ME_TextEditor *editor, ME_Context *c, ME_Parag
if (SUCCEEDED( itemize_para( c, para ) ))
shape_para( c, para );
}
+ else
+ {
+ /* If the user has just converted a normal rich editor with already
+ * existing text into a password input, the text may contain paragraphs
+ * with MEPF_COMPLEX set. Since we don't really shape any paragraphs
+ * here, we need to ensure that the MEPF_COMPLEX flag is unset.
+ */
+ para->nFlags &= ~MEPF_COMPLEX;
+ }
wc.context = c;
wc.para = para;