From de521bb2b4112d7c23d14aa02da63db2da4942f9 Mon Sep 17 00:00:00 2001 From: Adam Berkovec Date: Thu, 23 Mar 2017 12:16:43 -0700 Subject: [PATCH] Fix memory leak in Patch.String() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Buffer allocated in Patch.String() was never freed Signed-off-by: Can Berk Güder --- patch.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/patch.go b/patch.go index 45e14ac..0d0df7f 100644 --- a/patch.go +++ b/patch.go @@ -40,15 +40,18 @@ func (patch *Patch) String() (string, error) { if patch.ptr == nil { return "", ErrInvalid } - var buf C.git_buf runtime.LockOSThread() defer runtime.UnlockOSThread() + var buf C.git_buf + ecode := C.git_patch_to_buf(&buf, patch.ptr) if ecode < 0 { return "", MakeGitError(ecode) } + defer C.git_buf_free(&buf) + return C.GoString(buf.ptr), nil }