aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/funcs.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-10-16 16:41:17 +0800
committerGitHub <noreply@github.com>2023-10-16 16:41:17 +0800
commit0892c1cd94672e0dffe3b97fc4a85ea517b05598 (patch)
tree19aa0a631ed8c3135db83ceffaab34a8d2b9fddf /src/nvim/eval/funcs.c
parent3222f0ad0079ce4bd4e45886a00e4fe4685fb5dd (diff)
downloadrneovim-0892c1cd94672e0dffe3b97fc4a85ea517b05598.tar.gz
rneovim-0892c1cd94672e0dffe3b97fc4a85ea517b05598.tar.bz2
rneovim-0892c1cd94672e0dffe3b97fc4a85ea517b05598.zip
vim-patch:9.0.2033: gcc overflow-warning for f_resolve (#25666)
Problem: gcc overflow-warning for f_resolve Solution: use pointer p instead of pointer q[-1] Suppress the following warning: ``` filepath.c: In function ‘f_resolve’: filepath.c:2162:27: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 2162 | q[-1] = NUL; ``` Closes: vim/vim#13352 closes: vim/vim#13353 https://github.com/vim/vim/commit/215c3261a25f7a99e8711a3b3c6158119c6aea9e Co-authored-by: Ken Takata <kentkt@csc.jp>
Diffstat (limited to 'src/nvim/eval/funcs.c')
-rw-r--r--src/nvim/eval/funcs.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
index b9d124532e..0979087c79 100644
--- a/src/nvim/eval/funcs.c
+++ b/src/nvim/eval/funcs.c
@@ -6098,13 +6098,13 @@ static void f_resolve(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
}
// Ensure that the result will have a trailing path separator
- // if the argument has one. */
+ // if the argument has one.
if (remain == NULL && has_trailing_pathsep) {
add_pathsep(buf);
}
// Separate the first path component in the link value and
- // concatenate the remainders. */
+ // concatenate the remainders.
q = (char *)path_next_component(vim_ispathsep(*buf) ? buf + 1 : buf);
if (*q != NUL) {
cpy = remain;
@@ -6118,7 +6118,7 @@ static void f_resolve(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
q = path_tail(p);
if (q > p && *q == NUL) {
// Ignore trailing path separator.
- q[-1] = NUL;
+ p[q - p - 1] = NUL;
q = path_tail(p);
}
if (q > p && !path_is_absolute(buf)) {