Browse Source
When pushing to overwrite a ref that points at a commit we do not even have, the recent "terse push" patch tried to get a unique abbreviation for the non-existent (from our point of view) object, which resulted in strcpy(buf, NULL) and segfaulted. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Junio C Hamano
17 years ago
2 changed files with 45 additions and 2 deletions
@ -0,0 +1,42 @@
@@ -0,0 +1,42 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='forced push to replace commit we do not have' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success setup ' |
||||
|
||||
>file1 && git add file1 && test_tick && |
||||
git commit -m Initial && |
||||
|
||||
mkdir another && ( |
||||
cd another && |
||||
git init && |
||||
git fetch .. master:master |
||||
) && |
||||
|
||||
>file2 && git add file2 && test_tick && |
||||
git commit -m Second |
||||
|
||||
' |
||||
|
||||
test_expect_success 'non forced push should die not segfault' ' |
||||
|
||||
( |
||||
cd another && |
||||
git push .. master:master |
||||
test $? = 1 |
||||
) |
||||
|
||||
' |
||||
|
||||
test_expect_success 'forced push should succeed' ' |
||||
|
||||
( |
||||
cd another && |
||||
git push .. +master:master |
||||
) |
||||
|
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue