mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
fix segfault showing an empty remote
In case of an empty list, the search for its tail caused a NULL-pointer dereference. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Reported-by: Erik Faye-Lund <kusmabite@googlemail.com> Acked-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e57cb01582
commit
6a01554e63
@ -299,11 +299,11 @@ static int get_push_ref_states(const struct ref *remote_refs,
|
||||
return 0;
|
||||
|
||||
local_refs = get_local_heads();
|
||||
ref = push_map = copy_ref_list(remote_refs);
|
||||
while (ref->next)
|
||||
ref = ref->next;
|
||||
push_tail = &ref->next;
|
||||
push_map = copy_ref_list(remote_refs);
|
||||
|
||||
push_tail = &push_map;
|
||||
while (*push_tail)
|
||||
push_tail = &((*push_tail)->next);
|
||||
match_refs(local_refs, push_map, &push_tail, remote->push_refspec_nr,
|
||||
remote->push_refspec, MATCH_REFS_NONE);
|
||||
|
||||
|
@ -494,5 +494,15 @@ test_expect_success 'remote prune to cause a dangling symref' '
|
||||
grep "dangling symref" err
|
||||
'
|
||||
|
||||
test_expect_success 'show empty remote' '
|
||||
|
||||
test_create_repo empty &&
|
||||
git clone empty empty-clone &&
|
||||
(
|
||||
cd empty-clone &&
|
||||
git remote show origin
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user