patch 9.1.1680: MS-Windows: possible buffer-under run in if_cscope
Commit:
https://github.com/vim/vim/commit/191d77872d8938fce28abaec061d4d6cde88cf48
Author: Christian Brabandt <
c...@256bit.org>
Date: Sat Aug 23 18:11:28 2025 +0200
patch 9.1.1680: MS-Windows: possible buffer-under run in if_cscope
Problem: MS-Windows: possible buffer-under run in if_cscope
cs_pathcomponents() (Murali Aniruddhan)
Solution: Fix the loop and do not decrement the pointer twice.
closes: #18091
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/src/if_cscope.c b/src/if_cscope.c
index 86bfbd81b..478a99f16 100644
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -1940,12 +1940,18 @@ cs_pathcomponents(char *path)
s = path + strlen(path) - 1;
for (i = 0; i < p_cspc; ++i)
- while (s > path && *--s != '/'
+ {
+ while (s > path)
+ {
+ s--;
+ if (*s == '/'
#ifdef MSWIN
- && *--s != '\'
+ || *s == '\'
#endif
)
- ;
+ break;
+ }
+ }
if ((s > path && *s == '/')
#ifdef MSWIN
|| (s > path && *s == '\')
diff --git a/src/version.c b/src/version.c
index 98ecbc99a..a53a03924 100644
--- a/src/version.c
+++ b/src/version.c
@@ -724,6 +724,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1680,
/**/
1679,
/**/