Fix potential send-pack SIGSEGV

The check that the source is ahead of the destination incorrectly expects 
pop_most_recent_commit() to gracefully handle an empty list. 

Fix by just checking the list itself, rather than the return value of the 
pop function.

[jc: I did the test script that demonstrated the problem]

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Linus Torvalds
2005-07-26 20:04:22 -07:00
committed by Junio C Hamano
parent 2779fad613
commit bdf25142aa
2 changed files with 56 additions and 1 deletions

View File

@ -134,7 +134,8 @@ static int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha
return 0;
list = NULL;
commit_list_insert(new, &list);
while ((new = pop_most_recent_commit(&list, 1)) != NULL) {
while (list) {
new = pop_most_recent_commit(&list, 1);
if (new == old)
return 1;
}