From 87e60dcf0f7ef917b73353d8605188a420bd91f9 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 28 Oct 2024 15:26:21 +0100 Subject: hexdump: fix regression with -n4 -e '"%u"' Fix bug introduced in busybox 1.37.0 that broke kernel builds. Fixes commit e2287f99fe6f (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 Signed-off-by: Denys Vlasenko --- libbb/dump.c | 6 ++++-- testsuite/hexdump.tests | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) --- a/libbb/dump.c +++ b/libbb/dump.c @@ -198,9 +198,11 @@ static NOINLINE void rewrite(priv_dumper 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 */ --- a/testsuite/hexdump.tests +++ b/testsuite/hexdump.tests @@ -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