From b2afbfb45028a0fc06647c5ca41e43016b16de87 Mon Sep 17 00:00:00 2001 From: Martin Mirchev Date: Mon, 26 May 2025 10:04:39 +0800 Subject: [PATCH 1/2] fix: Omnisharp dynamic arguments are not escaped --- src/multilspy/language_servers/omnisharp/omnisharp.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/multilspy/language_servers/omnisharp/omnisharp.py b/src/multilspy/language_servers/omnisharp/omnisharp.py index 0f295a0..86806da 100644 --- a/src/multilspy/language_servers/omnisharp/omnisharp.py +++ b/src/multilspy/language_servers/omnisharp/omnisharp.py @@ -7,6 +7,7 @@ import logging import os import pathlib +import shlex import stat from contextlib import asynccontextmanager from typing import AsyncIterator, Iterable @@ -71,20 +72,20 @@ def __init__(self, config: MultilspyConfig, logger: MultilspyLogger, repository_ cmd = " ".join( [ - omnisharp_executable_path, + shlex.quote(omnisharp_executable_path), "-lsp", "--encoding", "ascii", "-z", "-s", - slnfilename, + shlex.quote(slnfilename), "--hostPID", str(os.getpid()), "DotNet:enablePackageRestore=false", "--loglevel", "trace", "--plugin", - dll_path, + shlex.quote(dll_path), "FileOptions:SystemExcludeSearchPatterns:0=**/.git", "FileOptions:SystemExcludeSearchPatterns:1=**/.svn", "FileOptions:SystemExcludeSearchPatterns:2=**/.hg", From 3130a2b461308cbfca423f070102b7cb63766e2c Mon Sep 17 00:00:00 2001 From: Martin Mirchev Date: Mon, 26 May 2025 10:04:39 +0800 Subject: [PATCH 2/2] fix: Omnisharp dynamic arguments are not escaped --- src/multilspy/language_servers/omnisharp/omnisharp.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/multilspy/language_servers/omnisharp/omnisharp.py b/src/multilspy/language_servers/omnisharp/omnisharp.py index 0f295a0..86806da 100644 --- a/src/multilspy/language_servers/omnisharp/omnisharp.py +++ b/src/multilspy/language_servers/omnisharp/omnisharp.py @@ -7,6 +7,7 @@ import logging import os import pathlib +import shlex import stat from contextlib import asynccontextmanager from typing import AsyncIterator, Iterable @@ -71,20 +72,20 @@ def __init__(self, config: MultilspyConfig, logger: MultilspyLogger, repository_ cmd = " ".join( [ - omnisharp_executable_path, + shlex.quote(omnisharp_executable_path), "-lsp", "--encoding", "ascii", "-z", "-s", - slnfilename, + shlex.quote(slnfilename), "--hostPID", str(os.getpid()), "DotNet:enablePackageRestore=false", "--loglevel", "trace", "--plugin", - dll_path, + shlex.quote(dll_path), "FileOptions:SystemExcludeSearchPatterns:0=**/.git", "FileOptions:SystemExcludeSearchPatterns:1=**/.svn", "FileOptions:SystemExcludeSearchPatterns:2=**/.hg",