|
|
@@ -0,0 +1,49 @@
|
|
|
+From 87e60dcf0f7ef917b73353d8605188a420bd91f9 Mon Sep 17 00:00:00 2001
|
|
|
+From: Natanael Copa <[email protected]>
|
|
|
+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 <[email protected]>
|
|
|
+Signed-off-by: Denys Vlasenko <[email protected]>
|
|
|
+---
|
|
|
+ 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
|