diff options
author | James McCoy <jamessan@jamessan.com> | 2016-11-28 19:30:38 -0500 |
---|---|---|
committer | James McCoy <jamessan@jamessan.com> | 2016-11-28 19:32:39 -0500 |
commit | 80b808dbfeb14968561b6bbd2abdc77b522f262c (patch) | |
tree | 05bb08eba79569d3bcb621c93902f3fe1290abb2 | |
parent | 39bb43c5302310081bba1e987e1fcecf74ca6c14 (diff) | |
download | rneovim-80b808dbfeb14968561b6bbd2abdc77b522f262c.tar.gz rneovim-80b808dbfeb14968561b6bbd2abdc77b522f262c.tar.bz2 rneovim-80b808dbfeb14968561b6bbd2abdc77b522f262c.zip |
rbuffer: Use xcalloc to ensure memory is initialized
Since the rbuffer contents are used by string functions (like sscan,
strlen, etc.), it is not safe to use uninitialized memory. Using
xcalloc ensures the string-based functions do not run past the end of
the buffer.
Closes #5676
-rw-r--r-- | src/nvim/rbuffer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/nvim/rbuffer.c b/src/nvim/rbuffer.c index a2cc432eca..111af0d0fb 100644 --- a/src/nvim/rbuffer.c +++ b/src/nvim/rbuffer.c @@ -18,7 +18,7 @@ RBuffer *rbuffer_new(size_t capacity) capacity = 0x10000; } - RBuffer *rv = xmalloc(sizeof(RBuffer) + capacity); + RBuffer *rv = xcalloc(1, sizeof(RBuffer) + capacity); rv->full_cb = rv->nonfull_cb = NULL; rv->data = NULL; rv->size = 0; @@ -78,7 +78,7 @@ void rbuffer_reset(RBuffer *buf) FUNC_ATTR_NONNULL_ALL size_t temp_size; if ((temp_size = rbuffer_size(buf))) { if (buf->temp == NULL) { - buf->temp = xmalloc(rbuffer_capacity(buf)); + buf->temp = xcalloc(1, rbuffer_capacity(buf)); } rbuffer_read(buf, buf->temp, buf->size); } |