Hmmpf? Are you using an old version of the library?

````
~/src/libgit2/include/git2 development .$ git grep git_buf
blob.h: * The output is written into a `git_buf` which the caller must free
blob.h: * when done (via `git_buf_free`).
blob.h: * the data detached from the blob, call `git_buf_grow` on the buffer
blob.h: * @param out The git_buf to be filled in
blob.h: git_buf *out,
branch.h: * @param out Pointer to the user-allocated git_buf which will be
branch.h:       git_buf *out,
branch.h: * @param out Pointer to the user-allocated git_buf which will be filled iwth the name of the remote.
branch.h:       git_buf *out,
buffer.h:#ifndef INCLUDE_git_buf_h__
buffer.h:#define INCLUDE_git_buf_h__
buffer.h: * will fill in a `git_buf` and the caller can use `git_buf_free()` to
buffer.h: * A `git_buf` may also be used for the caller to pass in a reference to
buffer.h: * A `git_buf` is a public structure with three fields:
buffer.h: *   then the `git_buf` is considered empty and libgit2 will feel free
buffer.h:} git_buf;
buffer.h: * Static initializer for git_buf from static buffer
buffer.h: * Free the memory referred to by the git_buf.
buffer.h: * Note that this does not free the `git_buf` itself, just the memory
buffer.h:GIT_EXTERN(void) git_buf_free(git_buf *buffer);
buffer.h:GIT_EXTERN(int) git_buf_grow(git_buf *buffer, size_t target_size);
buffer.h:GIT_EXTERN(int) git_buf_set(
buffer.h:       git_buf *buffer, const void *data, size_t datalen);
config.h: * @param out Pointer to a user-allocated git_buf in which to store the path
config.h:GIT_EXTERN(int) git_config_find_global(git_buf *out);
config.h: * @param out Pointer to a user-allocated git_buf in which to store the path
config.h:GIT_EXTERN(int) git_config_find_xdg(git_buf *out);
config.h: * @param out Pointer to a user-allocated git_buf in which to store the path
config.h:GIT_EXTERN(int) git_config_find_system(git_buf *out);
filter.h: * See `git2/buffer.h` for background on `git_buf` objects.
filter.h:       git_buf *out,
filter.h:       git_buf *in);
filter.h:       git_buf *out,
filter.h:       git_buf *out,
message.h: * @param out The user-allocated git_buf which will be filled with the
message.h:GIT_EXTERN(int) git_message_prettify(git_buf *out, const char *message, int strip_comments);
object.h:GIT_EXTERN(int) git_object_short_id(git_buf *out, const git_object *obj);
patch.h: * @param out The git_buf to be filled in
patch.h:        git_buf *out,
refspec.h:GIT_EXTERN(int) git_refspec_transform(git_buf *out, const git_refspec *spec, const char *name);
refspec.h:GIT_EXTERN(int) git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *name);
repository.h: * @param out A pointer to a user-allocated git_buf which will contain
repository.h:           git_buf *out,
repository.h: * @param out git_buf to write data into
repository.h:GIT_EXTERN(int) git_repository_message(git_buf *out, git_repository *repo);
sys/filter.h:   git_buf       *to,
sys/filter.h:   const git_buf *from,
```