win32-font: truncate instead of fail if toy font name too long

http://lists.cairographics.org/archives/cairo/2008-December/016109.html
This commit is contained in:
Adrian Johnson 2008-12-22 11:09:27 +10:30
parent d99583bae6
commit 6ce97907ed

View file

@ -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 */