>From siglist.c: sys_siglist[i] = (char *)xmalloc (10 + strlen (_("Unknown Signal #")));
sprintf (sys_siglist[i], _("Unknown Signal #%d"), i); If the translator doesn't look at the code using these two messages, they may be translated in a totally different way. Luckily, in the current German translation, the malloc string is only one character shorter than the sprintf string, therefore this bug would only cause undefined behavior for very large signal numbers. Nevertheless, this must be fixed. The same string must be used for xmalloc and sprintf. What about the standard pattern of using snprintf with a null pointer first, to determine the actually needed memory?