Revert "simplify setting buffers"

This reverts commit d2137760e0.

Causes libgit2 to abort
This commit is contained in:
Michael Boulton 2020-08-18 15:16:33 +01:00
parent c0ec642fb7
commit 971e18b585
No known key found for this signature in database
GPG Key ID: 8A62CA0BE2E0197E
2 changed files with 13 additions and 1 deletions

View File

@ -98,7 +98,14 @@ func commitSignCallback(_signature *C.git_buf, _signature_field *C.git_buf, _com
cstr := unsafe.Pointer(C.CString(bufData))
defer C.free(cstr)
if int(C.git_buf_set(buf, cstr, clen)) != 0 {
// over-assign by a byte (see below)
if int(C.git_buf_grow(buf, clen+1)) != 0 {
return errors.New("could not grow buffer")
}
C._go_git_buf_fill_null(buf)
if int(C.git_buf_set(buf, cstr, clen+1)) != 0 {
return errors.New("could not set buffer")
}

View File

@ -12,6 +12,11 @@ void _go_git_populate_apply_cb(git_apply_options *options)
options->hunk_cb = (git_apply_hunk_cb)hunkApplyCallback;
}
void _go_git_buf_fill_null(git_buf *buf)
{
memset(buf->ptr, '\0', buf->asize*sizeof(char));
}
void _go_git_populate_commit_sign_cb(git_rebase_options *opts)
{
opts->signing_cb = (git_commit_signing_cb)commitSignCallback;