]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t8002: fix ambiguous printf conversion specifications
authorJan Palus <jpalus@fastmail.com>
Mon, 20 Jan 2025 11:41:06 +0000 (12:41 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 21 Jan 2025 22:04:26 +0000 (14:04 -0800)
In e7fb2ca945 (builtin/blame: fix out-of-bounds write with blank
boundary commits, 2025-01-10), we have introduced two new tests that
expect a certain amount of padding. This padding is generated via
printf using the "%0.s" conversion specification. That directive is
ambiguous because it might be interpreted as field width (most shells)
or 0-padding flag for numeric fields (coreutils).

Fix this issue by using "%${N}s" instead, which is already being
used in other tests (i.e. t5300, t0450) and is unambiguous.

Helped-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Jan Palus <jpalus@fastmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t8002-blame.sh

index 1ad039e1234828ca8779ad76147bfa7fe14c5a2e..e98993276a651a0009b837683ace80fad87cc20a 100755 (executable)
@@ -138,7 +138,7 @@ test_expect_success 'blame --abbrev -b truncates the blank boundary' '
        # Note that `--abbrev=` always gets incremented by 1, which is why we
        # expect 11 leading spaces and not 10.
        cat >expect <<-EOF &&
-       $(printf "%0.s " $(test_seq 11)) (<author@example.com> 2005-04-07 15:45:13 -0700 1) abbrev
+       $(printf "%11s" "") (<author@example.com> 2005-04-07 15:45:13 -0700 1) abbrev
        EOF
        git blame -b --abbrev=10 ^HEAD -- abbrev.t >actual &&
        test_cmp expect actual
@@ -146,7 +146,7 @@ test_expect_success 'blame --abbrev -b truncates the blank boundary' '
 
 test_expect_success 'blame with excessive --abbrev and -b culls to hash length' '
        cat >expect <<-EOF &&
-       $(printf "%0.s " $(test_seq $hexsz)) (<author@example.com> 2005-04-07 15:45:13 -0700 1) abbrev
+       $(printf "%${hexsz}s" "") (<author@example.com> 2005-04-07 15:45:13 -0700 1) abbrev
        EOF
        git blame -b --abbrev=9000 ^HEAD -- abbrev.t >actual &&
        test_cmp expect actual