Merge pull request #368 from cbguder/master

Fix memory leak in Patch.String()
diff --git a/patch.go b/patch.go
index 45e14ac..0d0df7f 100644
--- a/patch.go
+++ b/patch.go
@@ -40,15 +40,18 @@
 	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
 }