aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2015-10-01 13:19:49 -0400
committerJustin M. Keyes <justinkz@gmail.com>2015-10-01 13:19:49 -0400
commitbb5bf96839239f83e5db4b5f34d13acea0e9cbe7 (patch)
tree6d26ee1661b81f59f3d96645575ed2809e38ec19
parentbb155564d91d6ccc965a83efa977636ea322582c (diff)
parent0320d86d3bc3967c05677e34a81027ce7fb48551 (diff)
downloadrneovim-bb5bf96839239f83e5db4b5f34d13acea0e9cbe7.tar.gz
rneovim-bb5bf96839239f83e5db4b5f34d13acea0e9cbe7.tar.bz2
rneovim-bb5bf96839239f83e5db4b5f34d13acea0e9cbe7.zip
Merge pull request #3407 from oni-link/fix.ga_concat
garray.c: Prevent ga_concat() using memcpy(NULL,...)
-rw-r--r--src/nvim/garray.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/nvim/garray.c b/src/nvim/garray.c
index 953eb58841..75c3fb9a73 100644
--- a/src/nvim/garray.c
+++ b/src/nvim/garray.c
@@ -184,10 +184,12 @@ char_u* ga_concat_strings(const garray_T *gap) FUNC_ATTR_NONNULL_RET
void ga_concat(garray_T *gap, const char_u *restrict s)
{
int len = (int)strlen((char *) s);
- ga_grow(gap, len);
- char *data = gap->ga_data;
- memcpy(data + gap->ga_len, s, (size_t) len);
- gap->ga_len += len;
+ if (len) {
+ ga_grow(gap, len);
+ char *data = gap->ga_data;
+ memcpy(data + gap->ga_len, s, (size_t)len);
+ gap->ga_len += len;
+ }
}
/// Append one byte to a growarray which contains bytes.