merge: fix NULL pointer dereference when merging nothing into void
commitb84e65d40929ec1146f54dcf4c9dbf8dc58467d0
authorJunio C Hamano <gitster@pobox.com>
Mon, 21 Mar 2016 19:01:43 +0000 (21 12:01 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2016 17:12:10 +0000 (23 10:12 -0700)
tree666e5f863b994cc9289bfa61be40f4d23b6566dd
parenta0feb1b1870fbb74f65d6a8951e4b2e2a2347ecf
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 <gitster@pobox.com>
builtin/merge.c
t/t7600-merge.sh