Fixes: 1d3bfdc3abdaaa45075f0ec04228b911ab5ab8cf
-- v3: gdi32: Ensure null termination in logfont_AtoW.
From: Alex Henrie alexhenrie24@gmail.com
Fixes: 1d3bfdc3abdaaa45075f0ec04228b911ab5ab8cf --- dlls/gdi32/text.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/gdi32/text.c b/dlls/gdi32/text.c index 7725e832c6b..c3a704bbfea 100644 --- a/dlls/gdi32/text.c +++ b/dlls/gdi32/text.c @@ -780,10 +780,11 @@ static void text_metric_ex_WtoA(const NEWTEXTMETRICEXW *tmW, NEWTEXTMETRICEXA *t
static void logfont_AtoW( const LOGFONTA *fontA, LPLOGFONTW fontW ) { + int len = MultiByteToWideChar( CP_ACP, 0, fontA->lfFaceName, + strnlen( fontA->lfFaceName, LF_FACESIZE ), + fontW->lfFaceName, LF_FACESIZE ); + fontW->lfFaceName[min( len, LF_FACESIZE - 1 )] = 0; memcpy( fontW, fontA, sizeof(LOGFONTA) - LF_FACESIZE ); - MultiByteToWideChar( CP_ACP, 0, fontA->lfFaceName, strnlen( fontA->lfFaceName, LF_FACESIZE ), - fontW->lfFaceName, LF_FACESIZE ); - fontW->lfFaceName[LF_FACESIZE - 1] = 0; }
static void logfont_WtoA( const LOGFONTW *fontW, LPLOGFONTA fontA )