git-commit-vandalism/builtin
Junio C Hamano b84e65d409 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>
2016-03-23 10:12:10 -07:00
..
add.c Merge branch 'jc/add-u-A-default-to-top' into maint 2015-11-05 12:18:12 -08:00
am.c Merge branch 'jc/am-i-v-fix' into maint 2016-03-10 11:13:41 -08:00
annotate.c
apply.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
archive.c
bisect--helper.c
blame.c Merge branch 'jk/tighten-alloc' into maint 2016-03-10 11:13:43 -08:00
branch.c config: rename git_config_set_or_die to git_config_set 2016-02-22 10:23:55 -08:00
bundle.c
cat-file.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
check-attr.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
check-ignore.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
check-mailmap.c
check-ref-format.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
checkout-index.c
checkout.c Merge branch 'nd/dwim-wildcards-as-pathspecs' into maint 2016-03-10 11:13:39 -08:00
clean.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
clone.c config: rename git_config_set_or_die to git_config_set 2016-02-22 10:23:55 -08:00
column.c
commit-tree.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
commit.c Merge branch 'js/fopen-harder' into maint 2016-02-05 14:54:11 -08:00
config.c Merge branch 'js/config-set-in-non-repository' into maint 2016-03-10 11:13:45 -08:00
count-objects.c
credential.c git credential fill: output the whole 'struct credential' 2012-06-25 11:56:24 -07:00
describe.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
diff-files.c
diff-index.c
diff-tree.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
diff.c Merge branch 'nd/diff-with-path-params' into maint 2016-02-05 14:54:15 -08:00
fast-export.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
fetch-pack.c fetch-pack: simplify add_sought_entry 2016-02-22 14:51:09 -08:00
fetch.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
fmt-merge-msg.c Merge branch 'rs/pop-commit' into maint 2015-12-11 11:14:13 -08:00
for-each-ref.c ref-filter: add option to match literal pattern 2015-09-17 10:02:49 -07:00
fsck.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
gc.c Merge branch 'dk/gc-idx-wo-pack' into maint 2015-12-04 11:33:08 -08:00
get-tar-commit-id.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
grep.c Merge branch 'jk/tighten-alloc' into maint 2016-03-10 11:13:43 -08:00
hash-object.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
help.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
index-pack.c Merge branch 'jk/pack-idx-corruption-safety' into maint 2016-03-10 11:13:46 -08:00
init-db.c config: rename git_config_set_or_die to git_config_set 2016-02-22 10:23:55 -08:00
interpret-trailers.c
log.c format-patch: add an option to suppress commit hash 2015-12-15 10:03:40 -08:00
ls-files.c ps_matched: xcalloc() takes nmemb and then element size 2015-08-20 09:57:38 -07:00
ls-remote.c Convert struct ref to use object_id. 2015-11-20 08:02:05 -05:00
ls-tree.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
mailinfo.c mailinfo: libify 2015-10-21 15:59:34 -07:00
mailsplit.c mailsplit: make PATH_MAX buffers dynamic 2015-09-25 10:18:18 -07:00
merge-base.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
merge-file.c Merge branch 'jk/merge-file-exit-code' into maint 2015-11-03 15:32:41 -08:00
merge-index.c use sha1_to_hex_r() instead of strcpy 2015-10-05 11:08:05 -07:00
merge-ours.c
merge-recursive.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
merge-tree.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
merge.c merge: fix NULL pointer dereference when merging nothing into void 2016-03-23 10:12:10 -07:00
mktag.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
mktree.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
mv.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
name-rev.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
notes.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
pack-objects.c Merge branch 'jk/path-name-safety-2.6' into jk/path-name-safety-2.7 2016-03-16 10:42:32 -07:00
pack-redundant.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
pack-refs.c
patch-id.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
prune-packed.c
prune.c Merge branch 'jk/repository-extension' into maint 2015-11-03 15:32:25 -08:00
pull.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
push.c push: don't mark options of recurse-submodules for translation 2015-12-22 14:40:47 -08:00
read-tree.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
receive-pack.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
reflog.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
remote-ext.c convert manual allocations to argv_array 2016-02-22 14:50:32 -08:00
remote-fd.c
remote.c config: rename git_config_set_or_die to git_config_set 2016-02-22 10:23:55 -08:00
repack.c Merge branch 'jk/repository-extension' into maint 2015-11-03 15:32:25 -08:00
replace.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
rerere.c Sync with 2.6.1 2015-10-05 13:20:08 -07:00
reset.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
rev-list.c Merge branch 'jk/path-name-safety-2.6' into jk/path-name-safety-2.7 2016-03-16 10:42:32 -07:00
rev-parse.c rev-parse: take prefix into account in --git-common-dir 2016-02-12 16:01:47 -08:00
revert.c
rm.c Merge branch 'nd/ita-cleanup' into maint 2016-02-22 13:10:21 -08:00
send-pack.c push: add a config option push.gpgSign for default signed pushes 2015-08-19 12:58:58 -07:00
shortlog.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
show-branch.c Merge branch 'rs/show-branch-argv-array' into maint 2015-12-11 11:14:14 -08:00
show-ref.c show-ref: stop using PARSE_OPT_NO_INTERNAL_HELP 2015-11-20 08:02:07 -05:00
stripspace.c stripspace: call U+0020 a "space" instead of a "blank" 2016-01-29 16:02:34 -08:00
submodule--helper.c submodule helper list: respect correct path prefix 2016-02-24 14:33:02 -08:00
symbolic-ref.c symbolic-ref: propagate error code from create_symref() 2015-12-21 12:03:03 -08:00
tag.c tag: do not show ambiguous tag names as "tags/foo" 2016-01-26 13:34:10 -08:00
unpack-file.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
unpack-objects.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
update-index.c
update-ref.c tag, update-ref: improve description of option "create-reflog" 2015-09-11 09:50:02 -07:00
update-server-info.c i18n: update-server-info: mark parseopt strings for translation 2012-08-22 10:58:29 -07:00
upload-archive.c upload-archive: convert sprintf to strbuf 2015-09-25 10:18:18 -07:00
var.c
verify-commit.c
verify-pack.c
verify-tag.c
worktree.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
write-tree.c