https://git.reactos.org/?p=reactos.git;a=commitdiff;h=436d8d962ae3e75020c6b9...
commit 436d8d962ae3e75020c6b93f3acba2ea0316daa5 Author: Mark Jansen mark.jansen@reactos.org AuthorDate: Sat Dec 29 19:45:09 2018 +0100 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Sat Dec 29 19:46:59 2018 +0100
[FONT][WIN32SS] Hold the freetype lock while accessing freetype data --- win32ss/gdi/ntgdi/freetype.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index 8ab25b94a9..7e7e132285 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -4142,10 +4142,9 @@ ftGdiGetTextCharsetInfo( Face = FontGdi->SharedFace->Face; TEXTOBJ_UnlockText(TextObj);
+ memset(&fs, 0, sizeof(FONTSIGNATURE)); IntLockFreeType(); pOS2 = FT_Get_Sfnt_Table(Face, ft_sfnt_os2); - IntUnLockFreeType(); - memset(&fs, 0, sizeof(FONTSIGNATURE)); if (NULL != pOS2) { fs.fsCsb[0] = pOS2->ulCodePageRange1; @@ -4164,6 +4163,8 @@ ftGdiGetTextCharsetInfo( fs.fsCsb[0] |= FS_SYMBOL; } } + pOS2 = NULL; + IntUnLockFreeType(); DPRINT("Csb 1=%x 0=%x\n", fs.fsCsb[1],fs.fsCsb[0]); if (fs.fsCsb[0] == 0) { /* Let's see if we can find any interesting cmaps */