aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/os/fs.c2
-rw-r--r--src/nvim/path.c4
-rw-r--r--test/unit/path_spec.lua15
3 files changed, 13 insertions, 8 deletions
diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c
index 85caf4aa43..aa344d786c 100644
--- a/src/nvim/os/fs.c
+++ b/src/nvim/os/fs.c
@@ -375,7 +375,7 @@ static bool is_executable_in_path(const char *name, char **abspath)
// Combine the $PATH segment with `name`.
xstrlcpy(buf, p, (size_t)(e - p) + 1);
- append_path(buf, name, buf_len);
+ (void)append_path(buf, name, buf_len);
#ifdef MSWIN
if (is_executable_ext(buf, abspath)) {
diff --git a/src/nvim/path.c b/src/nvim/path.c
index 4de18c7530..e3947c54cd 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -2301,7 +2301,9 @@ int path_full_dir_name(char *directory, char *buffer, size_t len)
retval = FAIL;
} else {
xstrlcpy(buffer, old_dir, len);
- append_path(buffer, directory, len);
+ if (append_path(buffer, directory, len) == FAIL) {
+ retval = FAIL;
+ }
}
} else if (os_dirname(buffer, len) == FAIL) {
// Do not return immediately since we are in the wrong directory.
diff --git a/test/unit/path_spec.lua b/test/unit/path_spec.lua
index 8df6a52cd1..44919368bf 100644
--- a/test/unit/path_spec.lua
+++ b/test/unit/path_spec.lua
@@ -413,12 +413,15 @@ describe('path.c', function()
end)
itp('fails and uses filename if given filename contains non-existing directory', function()
- local filename = 'non_existing_dir/test.file'
- local buflen = string.len(filename) + 1
- local do_expand = 1
- local buf, result = vim_FullName(filename, buflen, do_expand)
- eq(filename, ffi.string(buf))
- eq(FAIL, result)
+ -- test with different filename lengths
+ for rep = 1, 10 do
+ local filename = ('non_existing_'):rep(rep) .. 'dir/test.file'
+ local buflen = string.len(filename) + 1
+ local do_expand = 1
+ local buf, result = vim_FullName(filename, buflen, do_expand)
+ eq(filename, ffi.string(buf))
+ eq(FAIL, result)
+ end
end)
itp('concatenates filename if it does not contain a slash', function()