diff -up vim82/runtime/ftplugin/cucumber.vim.cucumber-code-inject vim82/runtime/ftplugin/cucumber.vim --- vim82/runtime/ftplugin/cucumber.vim.cucumber-code-inject 2021-03-22 10:02:41.000000000 +0100 +++ vim82/runtime/ftplugin/cucumber.vim 2026-06-30 15:35:41.267808950 +0200 @@ -96,7 +96,8 @@ function! s:stepmatch(receiver,target) catch endtry if has("ruby") && pattern !~ '\\\@ s:steps -> s:stepmatch on every discovered step, + " including the malicious one. Suppress preview and error messages. + silent! normal [d + call assert_false(filereadable(marker), 'Ruby injection executed') + bwipe! + filetype plugin off +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 21e2c1d..5308fbb 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -791,7 +791,7 @@ func Test_cucumber_code_injection() CheckFeature ruby filetype plugin on - call mkdir('Xcucu/features/step_definitions', 'pR') + call mkdir('Xcucu/features/step_definitions', 'p') call writefile([ \ 'Feature: demo', \ ' Scenario: trigger', @@ -814,6 +814,7 @@ func Test_cucumber_code_injection() silent! normal [d call assert_false(filereadable(marker), 'Ruby injection executed') bwipe! + call delete('Xcucu', 'rf') filetype plugin off endfunc