Commit 3e529e9d by Carlos Martín Nieto

Fix a few leaks

The interesting one is the notification macro, which was returning
directly on a soft-abort instead of going through the cleanup.
parent d01737b4
...@@ -702,9 +702,13 @@ int git_stash_apply_init_options(git_stash_apply_options *opts, unsigned int ver ...@@ -702,9 +702,13 @@ int git_stash_apply_init_options(git_stash_apply_options *opts, unsigned int ver
} }
#define NOTIFY_PROGRESS(opts, progress_type) \ #define NOTIFY_PROGRESS(opts, progress_type) \
do { \
if ((opts).progress_cb && \ if ((opts).progress_cb && \
(error = (opts).progress_cb((progress_type), (opts).progress_payload))) \ (error = (opts).progress_cb((progress_type), (opts).progress_payload))) { \
return (error < 0) ? error : -1; error = (error < 0) ? error : -1; \
goto cleanup; \
} \
} while(false);
int git_stash_apply( int git_stash_apply(
git_repository *repo, git_repository *repo,
......
...@@ -44,6 +44,8 @@ void test_stash_apply__initialize(void) ...@@ -44,6 +44,8 @@ void test_stash_apply__initialize(void)
assert_status(repo, "how", GIT_STATUS_CURRENT); assert_status(repo, "how", GIT_STATUS_CURRENT);
assert_status(repo, "who", GIT_STATUS_CURRENT); assert_status(repo, "who", GIT_STATUS_CURRENT);
assert_status(repo, "when", GIT_ENOTFOUND); assert_status(repo, "when", GIT_ENOTFOUND);
git_index_free(repo_index);
} }
void test_stash_apply__cleanup(void) void test_stash_apply__cleanup(void)
......
...@@ -257,4 +257,5 @@ void test_submodule_modify__save_last(void) ...@@ -257,4 +257,5 @@ void test_submodule_modify__save_last(void)
cl_git_pass(git_submodule_lookup(&sm, g_repo, "sm_gitmodules_only")); cl_git_pass(git_submodule_lookup(&sm, g_repo, "sm_gitmodules_only"));
cl_git_pass(git_submodule_save(sm)); cl_git_pass(git_submodule_save(sm));
git_submodule_free(sm);
} }
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