Package: manpages-dev Version: 3.42-1 Severity: minor The sprintf(3) man page says about sprintf():
sprintf(), snprintf(), vsprintf() and vsnprintf() write to the character string str. but it does not say that a terminating null byte is written (this is said only for snprintf() and vsnprintf() later). Of course, since the above sentence uses the term "character string", one could guess that a terminating null byte is written, but actually this is an incorrect deduction. As I interpret the above sentence, I would think that sprintf() writes a character string (i.e. a sequence of non-null characters terminated by a null character), but this is not how this function behaves: it can write several null characters (thus, not just a character string). Here's an example: #include <stdio.h> int main (void) { char s[200]; int c = 0; sprintf (s, "%c%100s", c, "foo"); return 0; } Characters are written after the initial \0 (so that if s[200] is replaced by s[1], one has an undefined behavior). The C99 standard is much more clear than the man page. It says: The sprintf function is equivalent to fprintf, except that the output is written into an array (specified by the argument s) rather than to a stream. A null character is written at the end of the characters written; it is not counted as part of the returned value. If copying takes place between objects that overlap, the behavior is undefined. The man page could say: sprintf(), snprintf(), vsprintf() and vsnprintf() write a sequence of characters to the array str; a null character is written [or added] at the end of this sequence. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores) Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages manpages-dev depends on: ii manpages 3.42-1 manpages-dev recommends no packages. Versions of packages manpages-dev suggests: ii man-db [man-browser] 2.6.2-1 -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org