From bdf25142aaac016f4d992001f336d53ab4fbc75e Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 26 Jul 2005 20:04:22 -0700 Subject: 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 Signed-off-by: Junio C Hamano --- send-pack.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'send-pack.c') diff --git a/send-pack.c b/send-pack.c index 2a7ab2d2b9..9b4be6130c 100644 --- a/send-pack.c +++ b/send-pack.c @@ -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; } -- cgit v1.3