hexdump: fix regression with -n4 -e '"%u"'

Fix bug introduced in busybox 1.37.0 that broke kernel builds.

Fixes commit e2287f99fe (od: for !DESKTOP, match output more closely
to GNU coreutils 9.1, implement -s)

function                                             old     new   delta
rewrite                                              967     976      +9

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Natanael Copa 2024-10-28 15:26:21 +01:00 committed by Denys Vlasenko
parent 175b8dda19
commit 87e60dcf0f
2 changed files with 10 additions and 2 deletions

View file

@ -198,9 +198,11 @@ static NOINLINE void rewrite(priv_dumper_t *dumper, FS *fs)
if (!e)
goto DO_BAD_CONV_CHAR;
pr->flags = F_INT;
if (e > int_convs + 1) /* not d or i? */
pr->flags = F_UINT;
byte_count_str = "\010\004\002\001";
if (e > int_convs + 1) { /* not d or i? */
pr->flags = F_UINT;
byte_count_str++;
}
goto DO_BYTE_COUNT;
} else
if (strchr(int_convs, *p1)) { /* %d etc */

View file

@ -82,4 +82,10 @@ testing "hexdump -e /2 %d" \
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"\
testing "hexdump -n4 -e '\"%u\"'" \
"hexdump -n4 -e '\"%u\"'" \
"12345678" \
"" \
"\x4e\x61\xbc\x00AAAA"
exit $FAILCOUNT