diff options
author | Daniil Zhukov <dmzhukov@outlook.com> | 2024-01-27 23:00:24 +0400 |
---|---|---|
committer | Daniil Zhukov <dmzhukov@outlook.com> | 2024-01-27 23:00:24 +0400 |
commit | 9d48266bed96d3ed9c7edf45e3b5fb8a9d0fda87 (patch) | |
tree | 00f0796c706521b3f8cafd378a7d8c3d24cbfd20 /src/nvim/help.c | |
parent | 6f49ed58c3d87ed8632ac84822173811a1a6ee3f (diff) | |
download | rneovim-9d48266bed96d3ed9c7edf45e3b5fb8a9d0fda87.tar.gz rneovim-9d48266bed96d3ed9c7edf45e3b5fb8a9d0fda87.tar.bz2 rneovim-9d48266bed96d3ed9c7edf45e3b5fb8a9d0fda87.zip |
fix(coverity/471380): null dereference in get_local_additions()
strrchr returns null pointer if '.' is not present in file name. Notice
that filenames are filtered to match "doc/*.??[tx]" pattern earlier so
we shouldn't expect null pointer here. However later in code strrchr
return value is checked so it seems better and more consistent to do the
same here too.
Diffstat (limited to 'src/nvim/help.c')
-rw-r--r-- | src/nvim/help.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nvim/help.c b/src/nvim/help.c index c6a6108010..879e2801a7 100644 --- a/src/nvim/help.c +++ b/src/nvim/help.c @@ -701,6 +701,9 @@ void get_local_additions(void) const char *const f1 = fnames[i1]; const char *const t1 = path_tail(f1); const char *const e1 = strrchr(t1, '.'); + if (e1 == NULL) { + continue; + } if (path_fnamecmp(e1, ".txt") != 0 && path_fnamecmp(e1, fname + 4) != 0) { // Not .txt and not .abx, remove it. @@ -715,7 +718,7 @@ void get_local_additions(void) } const char *const t2 = path_tail(f2); const char *const e2 = strrchr(t2, '.'); - if (e1 == NULL || e2 == NULL) { + if (e2 == NULL) { continue; } if (e1 - f1 != e2 - f2 |