[Bug 310800] [NEW] Invalid use of sprintf() in barnowl breaks with Intrepid gcc-4.3
Anders Kaseorg
anders at kaseorg.com
Tue Dec 23 06:07:17 UTC 2008
Public bug reported:
Binary package hint: barnowl
We have automatically detected that the barnowl source package
contains an invalid use of the sprintf() or snprintf() functions with
overlapping input and output, by matching the unpacked source against
one of the following two regexps:
.
pcregrep -M 'sprintf\s*\(\s*([^,]*)\s*,\s*"%s[^"]*"\s*,\s*\1\s*,'
pcregrep -M 'snprintf\s*\(\s*([^,]*)\s*,[^,]*,\s*"%s[^"]*"\s*,\s*\1\s*,'
.
An example of this kind of invalid sprintf() use is
sprintf(buf, "%s plus %d", buf, k);
which is likely intended to append formatted text to a buffer;
however, it is invalid according to C99. When compiled with Intrepid
gcc-4.3 or newer, it will silently produce unexpected results at
runtime.
.
This example sprintf() call could be fixed as follows:
-sprintf(buf, "%s plus %d", buf, k);
+sprintf(buf + strlen(buf), " plus %d", k);
Similarly, an invalid snprintf() call could be fixed as follows:
-snprintf(buf, buflen, "%s plus %d", buf, k);
+snprintf(buf + strlen(buf), buflen - strlen(buf), " plus %d", k);
.
Please forward this report upstream as appropriate. For more
information, see
https://launchpad.net/bugs/254468
http://sourceware.org/bugzilla/show_bug.cgi?id=7075
** Affects: barnowl (Ubuntu)
Importance: Undecided
Status: Confirmed
** Changed in: barnowl (Ubuntu)
Status: New => Confirmed
--
Invalid use of sprintf() in barnowl breaks with Intrepid gcc-4.3
https://bugs.launchpad.net/bugs/310800
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
ubuntu-bugs at lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
More information about the universe-bugs
mailing list