Commit e499b13c by Stefan Huber Committed by Carlos Martín Nieto

git_checkout_tree options fix

According to the reference the git_checkout_tree and git_checkout_head
functions should accept NULL in the opts field

This was broken since the opts field was dereferenced and thus lead to a
crash.
parent 12b73ff3
...@@ -2699,7 +2699,7 @@ int git_checkout_tree( ...@@ -2699,7 +2699,7 @@ int git_checkout_tree(
if ((error = git_repository_index(&index, repo)) < 0) if ((error = git_repository_index(&index, repo)) < 0)
return error; return error;
if ((opts->checkout_strategy & GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH)) { if (opts && (opts->checkout_strategy & GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH)) {
iter_opts.pathlist.count = opts->paths.count; iter_opts.pathlist.count = opts->paths.count;
iter_opts.pathlist.strings = opts->paths.strings; iter_opts.pathlist.strings = opts->paths.strings;
} }
......
...@@ -1479,3 +1479,7 @@ void test_checkout_tree__baseline_is_empty_when_no_index(void) ...@@ -1479,3 +1479,7 @@ void test_checkout_tree__baseline_is_empty_when_no_index(void)
git_reference_free(head); git_reference_free(head);
} }
void test_checkout_tree__nullopts(void)
{
cl_git_pass(git_checkout_tree(g_repo, NULL, NULL));
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment