It only acts on constant strings, so it can't actually overflow, but
this way I can assert() that it really doesn't.
{
#define FULLNAME_MAX 100
static char fullname[FULLNAME_MAX];
+ int len;
- sprintf(fullname, FAMILY_NAME "%s%s", weight->suffix, width->suffix);
+ len = snprintf(fullname, sizeof(fullname),
+ FAMILY_NAME "%s%s", weight->suffix, width->suffix);
+ assert(len >= 0 && (unsigned)len < sizeof(fullname));
return fullname;
}