aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Schnitzer <mail@jakobschnitzer.de>2015-09-11 11:14:29 +0200
committerJakob Schnitzer <mail@jakobschnitzer.de>2015-09-14 12:06:49 +0200
commitc478dd5ab472a643488cb6b14e299ee46d83701c (patch)
tree6d17d1071682c549941231f020e1de0f331c83e7
parent5c82ea8f9f9f3ef043d4f206ded223a89a3bd360 (diff)
downloadrneovim-c478dd5ab472a643488cb6b14e299ee46d83701c.tar.gz
rneovim-c478dd5ab472a643488cb6b14e299ee46d83701c.tar.bz2
rneovim-c478dd5ab472a643488cb6b14e299ee46d83701c.zip
python: remove current working directory from path
Before, running Nvim in a directory containing a Python module `neovim`, or one that is imported by it or a plugin, will load that module and not the system one. So Nvim might be tricked into running arbitrary scripts from the current working directory. Fixes #1665 Fixes #2530
-rw-r--r--runtime/autoload/provider/pythonx.vim2
-rw-r--r--runtime/autoload/remote/host.vim2
2 files changed, 2 insertions, 2 deletions
diff --git a/runtime/autoload/provider/pythonx.vim b/runtime/autoload/provider/pythonx.vim
index df3264b7a2..5ca397ea4e 100644
--- a/runtime/autoload/provider/pythonx.vim
+++ b/runtime/autoload/provider/pythonx.vim
@@ -54,7 +54,7 @@ function! s:check_interpreter(prog, major_ver, skip) abort
" Try to load neovim module, and output Python version.
let prog_ver = system([ a:prog , '-c' ,
- \ 'import sys; sys.stdout.write(str(sys.version_info[0]) + '.
+ \ 'import sys; sys.path.remove(""); sys.stdout.write(str(sys.version_info[0]) + '.
\ '"." + str(sys.version_info[1])); '.
\ (a:major_ver == 2
\ ? 'import pkgutil; exit(pkgutil.get_loader("neovim") is None)'
diff --git a/runtime/autoload/remote/host.vim b/runtime/autoload/remote/host.vim
index 64f6ddb759..79dbb0ad0e 100644
--- a/runtime/autoload/remote/host.vim
+++ b/runtime/autoload/remote/host.vim
@@ -197,7 +197,7 @@ function! s:RequirePythonHost(host)
let ver = (a:host.orig_name ==# 'python') ? 2 : 3
" Python host arguments
- let args = ['-c', 'import neovim; neovim.start_host()']
+ let args = ['-c', 'import sys; sys.path.remove(""); import neovim; neovim.start_host()']
" Collect registered Python plugins into args
let python_plugins = remote#host#PluginsForHost(a:host.name)