Commit 6278fbc5 by Edward Thomson Committed by Edward Thomson

patch parsing: squash some memory leaks

parent f941f035
...@@ -939,6 +939,10 @@ static void patch_parsed__free(git_patch *p) ...@@ -939,6 +939,10 @@ static void patch_parsed__free(git_patch *p)
git__free(patch->rename_new_path); git__free(patch->rename_new_path);
git__free(patch->old_path); git__free(patch->old_path);
git__free(patch->new_path); git__free(patch->new_path);
git_array_clear(patch->base.hunks);
git_array_clear(patch->base.lines);
git__free(patch->base.delta);
git__free(patch);
} }
int git_patch_from_patchfile( int git_patch_from_patchfile(
...@@ -985,5 +989,8 @@ int git_patch_from_patchfile( ...@@ -985,5 +989,8 @@ int git_patch_from_patchfile(
*out = &patch->base; *out = &patch->base;
done: done:
if (error < 0)
patch_parsed__free(&patch->base);
return error; return error;
} }
...@@ -847,6 +847,8 @@ void test_core_buffer__decode_base85_fails_gracefully(void) ...@@ -847,6 +847,8 @@ void test_core_buffer__decode_base85_fails_gracefully(void)
cl_git_fail(git_buf_decode_base85(&buf, "truncated", 9, 42)); cl_git_fail(git_buf_decode_base85(&buf, "truncated", 9, 42));
cl_assert_equal_sz(6, buf.size); cl_assert_equal_sz(6, buf.size);
cl_assert_equal_s("foobar", buf.ptr); cl_assert_equal_s("foobar", buf.ptr);
git_buf_free(&buf);
} }
void test_core_buffer__classify_with_utf8(void) void test_core_buffer__classify_with_utf8(void)
......
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