From 079487b48724d936b31a6696ae0f929b0251eaa3 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Tue, 20 Oct 2020 19:26:52 +0200
Subject: hexdump: fix dup block comparison

function                                             old     new   delta
bb_dump_dump                                        1523    1520      -3

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 libbb/dump.c            |  1 -
 testsuite/hexdump.tests | 19 +++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/libbb/dump.c b/libbb/dump.c
index 920f003ef..7a07d6605 100644
--- a/libbb/dump.c
+++ b/libbb/dump.c
@@ -432,7 +432,6 @@ static unsigned char *get(priv_dumper_t *dumper)
 				if (dumper->pub.dump_vflag != DUP) {
 					puts("*");
 				}
-				return NULL;
 			}
 			memset(dumper->get__curp + nread, 0, need);
 			dumper->eaddress = dumper->address + nread;
diff --git a/testsuite/hexdump.tests b/testsuite/hexdump.tests
index 45a0c1300..cfb20187e 100755
--- a/testsuite/hexdump.tests
+++ b/testsuite/hexdump.tests
@@ -15,4 +15,23 @@ testing 'hexdump -C with four NULs' \
 	'' \
 	'\0\0\0\0'
 
+testing "hexdump does not think last padded block matches any full block" \
+	"hexdump -e '1/1 \"%02x|\"1/1 \"%02x!\\n\"'" \
+	"\
+00|00!
+*
+00|  !
+" \
+	'' \
+	'\0\0\0\0\0\0\0\0\0\0\0'
+
+testing "hexdump thinks last full block can match" \
+	"hexdump -e '1/1 \"%02x|\"1/1 \"%02x!\\n\"'" \
+	"\
+00|00!
+*
+" \
+	'' \
+	'\0\0\0\0\0\0\0\0\0\0\0\0'
+
 exit $FAILCOUNT
-- 
cgit v1.2.3-55-g6feb