vim-patch:98a0cbf: patch 9.1.1971: crash with invalid positional argument 0 in printf() (#36919)

Problem:  crash with invalid positional argument 0 in printf()
Solution: Reject positional arguments <= 0.

closes: vim/vim#18898

98a0cbf05b

Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2025-12-12 08:14:58 +08:00
parent cfb586a77b
commit a66fce6fab
5 changed files with 25 additions and 18 deletions

View File

@@ -300,6 +300,8 @@ func Test_printf_pos_errors()
call CheckLegacyAndVim9Failure(["call printf('%1$1$.5d', 5)"], "E1505:")
call CheckLegacyAndVim9Failure(["call printf('%1$5.1$d', 5)"], "E1505:")
call CheckLegacyAndVim9Failure(["call printf('%1$1$.1$d', 5)"], "E1505:")
call CheckLegacyAndVim9Failure(["call printf('%1$*1$.*0$s')"], "E1505:")
call CheckLegacyAndVim9Failure(["call printf('%*0$s')"], "E1505:")
call CheckLegacyAndVim9Failure(["call printf('%.123456789$d', 5)"], "E1510:")
call CheckLegacyAndVim9Failure(["call printf('%.123456789d', 5)"], "E1510:")