Commit 6990a492 by Heiko Voigt

revwalk: fix memory leak in error handling

This is not implemented and should fail, but it should also not leak. To
allow the memory debugger to find leaks and fix this one we test this.
parent d55bb479
...@@ -203,7 +203,8 @@ int git_revwalk_push_range(git_revwalk *walk, const char *range) ...@@ -203,7 +203,8 @@ int git_revwalk_push_range(git_revwalk *walk, const char *range)
if (revspec.flags & GIT_REVPARSE_MERGE_BASE) { if (revspec.flags & GIT_REVPARSE_MERGE_BASE) {
/* TODO: support "<commit>...<commit>" */ /* TODO: support "<commit>...<commit>" */
git_error_set(GIT_ERROR_INVALID, "symmetric differences not implemented in revwalk"); git_error_set(GIT_ERROR_INVALID, "symmetric differences not implemented in revwalk");
return GIT_EINVALIDSPEC; error = GIT_EINVALIDSPEC;
goto out;
} }
if ((error = push_commit(walk, git_object_id(revspec.from), 1, false))) if ((error = push_commit(walk, git_object_id(revspec.from), 1, false)))
......
...@@ -400,6 +400,15 @@ void test_revwalk_basic__push_range(void) ...@@ -400,6 +400,15 @@ void test_revwalk_basic__push_range(void)
cl_git_pass(test_walk_only(_walk, commit_sorting_segment, 2)); cl_git_pass(test_walk_only(_walk, commit_sorting_segment, 2));
} }
void test_revwalk_basic__push_range_merge_base(void)
{
revwalk_basic_setup_walk(NULL);
git_revwalk_reset(_walk);
git_revwalk_sorting(_walk, 0);
cl_git_fail_with(GIT_EINVALIDSPEC, git_revwalk_push_range(_walk, "HEAD...HEAD~2"));
}
void test_revwalk_basic__push_range_no_range(void) void test_revwalk_basic__push_range_no_range(void)
{ {
revwalk_basic_setup_walk(NULL); revwalk_basic_setup_walk(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