Commit 046b081ab52e5b3f04f0931728099f743ca5a924

Patrick Steinhardt 2017-09-15T10:46:26

diff: cleanup hash ctx in `git_diff_patchid` After initializing the hash context in `git_diff_patchid`, we never proceed to call `git_hash_ctx_cleanup` on it. While this doesn't really matter on most hash implementations, this causes a memory leak on Win32 due to CNG system requiring a `malloc` call. Fix the memory leak by always calling `git_hash_ctx_cleanup` before exiting.

1
2
3
4
5
6
7
8
9
10
11
diff --git a/src/diff.c b/src/diff.c
index 895cdae..b2a5ff9 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -517,5 +517,6 @@ int git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opt
 	git_oid_cpy(out, &args.result);
 
 out:
+	git_hash_ctx_cleanup(&args.ctx);
 	return error;
 }