[Bug 113] New: printf format handling incorrect when asterisk(*) follows format specifier
bugzilla at busybox.net
bugzilla at busybox.net
Wed Feb 18 16:26:39 UTC 2009
https://bugs.busybox.net/show_bug.cgi?id=113
Host: all
Target: all
Build: all versions >= 1.12.0
Summary: printf format handling incorrect when asterisk(*)
follows format specifier
Product: Busybox
Version: 1.12.x
Platform: All
OS/Version: All
Status: NEW
Severity: minor
Priority: P3
Component: Other
AssignedTo: unassigned at busybox.net
ReportedBy: ssh at sgi.com
CC: busybox-cvs at busybox.net
Estimated Hours: 0.0
Created an attachment (id=69)
--> (https://bugs.busybox.net/attachment.cgi?id=69)
Patch to fix printf asterisk bug
Starting with version 1.12.0, printf incorrectly handles formatting incorrectly
when an asterisk follows any format specifier in the format string. Here is a
simple example:
For any version *before* 1.12.0:
# printf "** %s **\n" "testing"
** testing **
But, for any version 1.12.0 or later:
# printf "** %s **\n" "testing"
** (null) **
The problem is caused by the new have_prec and have_width tests in
print_direc(). These are done *before* the format string is temporarily
truncated, so the have_width test detects any following asterisk characters.
Simply doing the temporary truncate of the format string before the tests fixes
the problem. The attached patch resolves the problem, and applies cleanly to
all versions 1.12.0 through 1.13.3 (haven't tried any other versions).
--
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the busybox-cvs
mailing list