* font.c (font_unparse_xlfd): Don't blindly alloca long strings.
Don't assume XINT result fits in int, or that XFLOAT_DATA * 10 fits in int, when using sprintf. Use single snprintf to count length of string rather than counting it via multiple sprintfs; that's simpler and more reliable. (APPEND_SPRINTF): New macro. (font_unparse_fcname): Use it to avoid sprintf buffer overrun. (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not sprintf, in case result does not fit in int.
Showing with 77 additions and 106 deletions