diff options
| author | Russell Belfer <arrbee@arrbee.com> | 2011-12-14 12:34:43 -0800 |
|---|---|---|
| committer | Russell Belfer <arrbee@arrbee.com> | 2011-12-14 14:31:06 -0800 |
| commit | b5daae68a4ae859653141fb097e7b7c81b25530b (patch) | |
| tree | 977115657e8b1690ea0a7d65ba49fc421b4cb392 /tests/test_helpers.c | |
| parent | d6ccedddd2f76d69b05ecfa45a93cde8682776e6 (diff) | |
| download | libgit2-b5daae68a4ae859653141fb097e7b7c81b25530b.tar.gz | |
Allow git_buf_joinpath to accept self-joins
It was not safe for git_buf_joinpath to be used with a pointer
into the buf itself because a reallocation could invalidate
the input parameter that pointed into the buffer. This patch
makes it safe to self join, at least for the leading input to
the join, which is the common "append" case for self joins.
Also added unit tests to explicitly cover this case.
This should actually fix #511
Diffstat (limited to 'tests/test_helpers.c')
| -rw-r--r-- | tests/test_helpers.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/test_helpers.c b/tests/test_helpers.c index d4ed10d94..40b3499bb 100644 --- a/tests/test_helpers.c +++ b/tests/test_helpers.c @@ -236,7 +236,7 @@ static int copy_filesystem_element_recurs(void *_data, git_buf *source) copydir_data *data = (copydir_data *)_data; git_buf_truncate(&data->dst, data->dst_baselen); - git_buf_joinpath(&data->dst, data->dst.ptr, source->ptr + data->src_baselen); + git_buf_puts(&data->dst, source->ptr + data->src_baselen); if (git_futils_isdir(source->ptr) == GIT_SUCCESS) return git_futils_direach(source, copy_filesystem_element_recurs, _data); |
