26 Nov
2017
26 Nov
'17
6:28 a.m.
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 346e21dc21..8be1bfe22e 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -1571,6 +1571,9 @@ static BOOL insert_face_in_family_list( Face *face, Family *family )> face->family = family; family->refcount++; face->refcount++;
+ /* GDI32 can't deal with long names, truncate them */ + if (face->FullName && lstrlenW(face->FullName) > LF_FACESIZE - 1) + face->FullName[LF_FACESIZE - 1] = 0;
Shouldn't this be LF_FULLFACESIZE ?
No, because later in gdi32/freetye.c/freetype_SelectFont: "strcmpiW(face->FullName, FaceName)" where "LOGFONTW lf;" and "LPWSTR FaceName = lf.lfFaceName;" So it's actually limited by LF_FACESIZE. Regards, Fabian Maurer