No subject


Thu Nov 2 09:08:48 EST 2006


    The ISO C99 standard says that if the output array isn't big enough
    and if no other errors occur, snprintf and vsnprintf truncate
    the output and return the number of bytes that ought to have been
    produced. Some older systems return the truncated length (e.g., GNU C
    Library 2.0.x or IRIX 6.5), some a negative value (e.g., earlier GNU
    C Library versions), and some the buffer length without truncation
    (e.g., 32-bit Solaris 7).  Also, some buggy older systems ignore
    the length and overrun the buffer (e.g., 64-bit Solaris 7).

So if you want to fatal() a message that is too long, you probably want
to #ifdef for non-C99 printf.

/fc



More information about the openssh-unix-dev mailing list