patch 9.1.1690: Missing recursion guard in dos/unix_expandpath()

Problem:  Missing recursion guard in dos/unix_expandpath()
Solution: Add guard variables (ashamedbit)

fixes: #18099
closes: #18106

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: ashamedbit <muralianiruddhan@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
ashamedbit
2025-08-26 17:43:18 +02:00
committed by Christian Brabandt
parent 540480697d
commit e8948a1f80
2 changed files with 18 additions and 6 deletions

View File

@ -3709,9 +3709,14 @@ dos_expandpath(
vim_snprintf((char *)buf + len, buflen - len, "%s", path_end);
if (mch_has_exp_wildcard(path_end))
{
// need to expand another component of the path
// remove backslashes for the remaining components only
(void)dos_expandpath(gap, buf, len + 1, flags, FALSE);
if (stardepth < 100)
{
// need to expand another component of the path
// remove backslashes for the remaining components only
++stardepth;
(void)dos_expandpath(gap, buf, len + 1, flags, FALSE);
--stardepth;
}
}
else
{
@ -3950,9 +3955,14 @@ unix_expandpath(
vim_snprintf((char *)buf + len, buflen - len, "%s", path_end);
if (mch_has_exp_wildcard(path_end)) // handle more wildcards
{
// need to expand another component of the path
// remove backslashes for the remaining components only
(void)unix_expandpath(gap, buf, len + 1, flags, FALSE);
if (stardepth < 100)
{
// need to expand another component of the path
// remove backslashes for the remaining components only
++stardepth;
(void)unix_expandpath(gap, buf, len + 1, flags, FALSE);
--stardepth;
}
}
else
{

View File

@ -724,6 +724,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1690,
/**/
1689,
/**/