runtime(dist): verify that executable is in $PATH

Commit: 
https://github.com/vim/vim/commit/8e25d91cb7bb4dc171cb4e95b1bb79a39400a13a
Author: Christian Brabandt <c...@256bit.org>
Date:   Sat Aug 17 15:52:11 2024 +0200

    runtime(dist): verify that executable is in $PATH
    
    Otherwise, if the executable to be verified does not exist,
    this would cause a false-positive in the 'IsSafeExecutable()' check,
    because 'exepath(executable)' returns an empty string and
    'fnamemodify('', ':p:h')' returns the current directory and as a result
    the 'IsSafeExecutable()' returns false (for the wrong reason).
    
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/autoload/dist/vim.vim b/runtime/autoload/dist/vim.vim
index 021244c93..d51940653 100644
--- a/runtime/autoload/dist/vim.vim
+++ b/runtime/autoload/dist/vim.vim
@@ -18,6 +18,10 @@ endif
 if !has('vim9script')
   function dist#vim#IsSafeExecutable(filetype, executable)
     let cwd = getcwd()
+    if empty(exepath(a:executable))
+      echomsg a:executable .. " not found in $PATH"
+      return v:false
+    endif
     return get(g:, a:filetype .. '_exec', get(g:, 'plugin_exec', 0)) &&
           \ (fnamemodify(exepath(a:executable), ':p:h') !=# cwd
           \ || (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1 &&
diff --git a/runtime/autoload/dist/vim9.vim b/runtime/autoload/dist/vim9.vim
index 807140da7..8fa9380f5 100644
--- a/runtime/autoload/dist/vim9.vim
+++ b/runtime/autoload/dist/vim9.vim
@@ -6,6 +6,10 @@ vim9script
 # Last Change: 2023 Oct 25
 
 export def IsSafeExecutable(filetype: string, executable: string): bool
+    if empty(exepath(executable))
+      echomsg executable .. " not found in $PATH"
+      return v:false
+    endif
     var cwd = getcwd()
     return get(g:, filetype .. '_exec', get(g:, 'plugin_exec', 0))
       && (fnamemodify(exepath(executable), ':p:h') !=# cwd

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1sfOtC-0081Zp-Ha%40256bit.org.

Raspunde prin e-mail lui