From 97769280ba9938ae27f6e06cbd0d5e8a768a86b9 Mon Sep 17 00:00:00 2001 From: Russell Belfer Date: Wed, 30 Nov 2011 11:27:15 -0800 Subject: Use git_buf for path storage instead of stack-based buffers This converts virtually all of the places that allocate GIT_PATH_MAX buffers on the stack for manipulating paths to use git_buf objects instead. The patch is pretty careful not to touch the public API for libgit2, so there are a few places that still use GIT_PATH_MAX. This extends and changes some details of the git_buf implementation to add a couple of extra functions and to make error handling easier. This includes serious alterations to all the path.c functions, and several of the fileops.c ones, too. Also, there are a number of new functions that parallel existing ones except that use a git_buf instead of a stack-based buffer (such as git_config_find_global_r that exists alongsize git_config_find_global). This also modifies the win32 version of p_realpath to allocate whatever buffer size is needed to accommodate the realpath instead of hardcoding a GIT_PATH_MAX limit, but that change needs to be tested still. --- src/commit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/commit.c') diff --git a/src/commit.c b/src/commit.c index bf6ca7855..5d077d54e 100644 --- a/src/commit.c +++ b/src/commit.c @@ -129,7 +129,8 @@ int git_commit_create( git_buf_puts(&commit, message); if (git_buf_oom(&commit)) { - error = git__throw(GIT_ENOMEM, "Not enough memory to build the commit data"); + error = git__throw(git_buf_lasterror(&commit), + "Not enough memory to build the commit data"); goto cleanup; } -- cgit v1.2.1