Jinoh Kang : riched20: Ensure MEPF_COMPLEX is unset when in password input mode.

Alexandre Julliard julliard at winehq.org
Tue Jul 12 16:45:37 CDT 2022


Module: wine
Branch: master
Commit: f77f12ba3b1dad9ebdcb116c66b137e9103a0d1b
URL:    https://gitlab.winehq.org/wine/wine/-/commit/f77f12ba3b1dad9ebdcb116c66b137e9103a0d1b

Author: Jinoh Kang <jinoh.kang.kr at 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 at gmail.com>

---

 dlls/riched20/wrap.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c
index db3e2806239..8cfb1692ecd 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;




More information about the wine-cvs mailing list