aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-05-23 15:49:21 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-05-23 16:06:46 -0300
commit399a0e37405a0f68ef3373c8ad9bcfa94ee0f649 (patch)
tree4f8b2a8ce5ef9521917bf5023fd90babfef9804b /src/nvim/api/vim.c
parent677d30d7966dd2766bbf20665791c568dacc427a (diff)
downloadrneovim-399a0e37405a0f68ef3373c8ad9bcfa94ee0f649.tar.gz
rneovim-399a0e37405a0f68ef3373c8ad9bcfa94ee0f649.tar.bz2
rneovim-399a0e37405a0f68ef3373c8ad9bcfa94ee0f649.zip
API: Bugfix: Terminate directory string in vim_change_directory
Also check that the string length is not equal or greater than MAXPATHL.
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r--src/nvim/api/vim.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index 1f335cf5e0..8cf4fb04d7 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -118,8 +118,14 @@ StringArray vim_list_runtime_paths(void)
void vim_change_directory(String dir, Error *err)
{
+ if (dir.size >= MAXPATHL) {
+ set_api_error("directory string is too long", err);
+ return;
+ }
+
char string[MAXPATHL];
strncpy(string, dir.data, dir.size);
+ string[dir.size] = NUL;
try_start();