0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 9.1.0261: Vim9: protected class and funcrefs accessible outside the class

Problem:  Vim9: protected class and funcrefs accessible outside the class
          (Aliaksei Budavei)
Solution: Check if class and object funcrefs are protected
          (Yegappan)

closes: #14407

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yegappan Lakshmanan
2024-04-04 19:35:59 +02:00
committed by Christian Brabandt
parent bd28cae1f1
commit 3e33650b3a
5 changed files with 80 additions and 4 deletions

View File

@@ -570,10 +570,16 @@ parse_argument_types(
fp->uf_arg_types[i] = type;
if (i < fp->uf_args.ga_len
&& (type->tt_type == VAR_FUNC
|| type->tt_type == VAR_PARTIAL)
&& var_wrong_func_name(
((char_u **)fp->uf_args.ga_data)[i], TRUE))
return FAIL;
|| type->tt_type == VAR_PARTIAL))
{
char_u *name = ((char_u **)fp->uf_args.ga_data)[i];
if (obj_members != NULL && *name == '_')
// protected object method
name++;
if (var_wrong_func_name(name, TRUE))
return FAIL;
}
}
}
}