From b84e65d40929ec1146f54dcf4c9dbf8dc58467d0 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 21 Mar 2016 12:01:43 -0700 Subject: merge: fix NULL pointer dereference when merging nothing into void When we are on an unborn branch and merging only one foreign parent, we allow "git merge" to fast-forward to that foreign parent commit. This codepath incorrectly attempted to dereference the list of parents that the merge is going to record even when the list is empty. It must refuse to operate instead when there is no parent. All other codepaths make sure the list is not empty before they dereference it, and are safe. Reported-by: Jose Ivan B. Vilarouca Filho Signed-off-by: Junio C Hamano --- t/t7600-merge.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 't/t7600-merge.sh') diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index 302e238263..9d7952f42c 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -725,4 +725,14 @@ test_expect_success 'merge detects mod-256 conflicts (resolve)' ' test_must_fail git merge -s resolve master ' +test_expect_success 'merge nothing into void' ' + git init void && + ( + cd void && + git remote add up .. && + git fetch up && + test_must_fail git merge FETCH_HEAD + ) +' + test_done -- cgit v1.2.3