From 6ce97907edfa8a7b09abfc090a9c03d235de2ada Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Mon, 22 Dec 2008 11:09:27 +1030 Subject: [PATCH] win32-font: truncate instead of fail if toy font name too long http://lists.cairographics.org/archives/cairo/2008-December/016109.html --- src/cairo-win32-font.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/cairo-win32-font.c b/src/cairo-win32-font.c index be50c6c54..e9abfda01 100644 --- a/src/cairo-win32-font.c +++ b/src/cairo-win32-font.c @@ -534,12 +534,11 @@ _cairo_win32_font_face_create_for_toy (cairo_toy_font_face_t *toy_face, if (status) return status; - if (face_name_len > LF_FACESIZE - 1) { - free (face_name); - return _cairo_error (CAIRO_STATUS_INVALID_STRING); - } + if (face_name_len > LF_FACESIZE - 1) + face_name_len = LF_FACESIZE - 1; - memcpy (logfont.lfFaceName, face_name, sizeof (uint16_t) * (face_name_len + 1)); + memcpy (logfont.lfFaceName, face_name, sizeof (uint16_t) * face_name_len); + logfont.lfFaceName[face_name_len] = 0; free (face_name); logfont.lfHeight = 0; /* filled in later */