print_direc needs to reset errno on entry, as some paths (those for %c and %s) don't go through multiconvert and thus don't reset errno there. This was showing up as a test suite failure:
FAIL: printf understands %s '"x' "'y" "'zTAIL" (I discovered this because one of the core components of the Debian/Ubuntu installer relies on printf in a 'set -e' script, and so the installer ended up completely non-functional.) Signed-off-by: Colin Watson <[email protected]> --- coreutils/printf.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/coreutils/printf.c b/coreutils/printf.c index 5b326c6..8836800 100644 --- a/coreutils/printf.c +++ b/coreutils/printf.c @@ -144,6 +144,8 @@ static void print_direc(char *format, unsigned fmt_length, char saved; char *have_prec, *have_width; + errno = 0; + saved = format[fmt_length]; format[fmt_length] = '\0'; -- 1.6.3.1 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
