Skip to content

Commit b25b9d5

Browse files
committed
Merge branch 'mm/no-shell-escape-in-die-message' into maint
Fixes a minor bug in "git rebase -i" (there could be others, as the root cause is pretty generic) where the code feeds a random, data dependeant string to 'echo' and expects it to come out literally. * mm/no-shell-escape-in-die-message: die_with_status: use "printf '%s\n'", not "echo"
2 parents dd42145 + 89b0230 commit b25b9d5

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

git-sh-setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ die () {
5353
die_with_status () {
5454
status=$1
5555
shift
56-
echo >&2 "$*"
56+
printf >&2 '%s\n' "$*"
5757
exit "$status"
5858
}
5959

t/t3404-rebase-interactive.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,4 +976,17 @@ test_expect_success 'rebase -i with --strategy and -X' '
976976
test $(cat file1) = Z
977977
'
978978

979+
test_expect_success 'rebase -i error on commits with \ in message' '
980+
current_head=$(git rev-parse HEAD)
981+
test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" &&
982+
test_commit TO-REMOVE will-conflict old-content &&
983+
test_commit "\temp" will-conflict new-content dummy &&
984+
(
985+
EDITOR=true &&
986+
export EDITOR &&
987+
test_must_fail git rebase -i HEAD^ --onto HEAD^^ 2>error
988+
) &&
989+
test_expect_code 1 grep " emp" error
990+
'
991+
979992
test_done

0 commit comments

Comments
 (0)