fix(gateway): handle wmic encoding errors on Windows non-English locales
Pass encoding='utf-8', errors='ignore' and guard against result.stdout being None so _scan_gateway_pids() no longer crashes with UnicodeDecodeError + AttributeError on Windows systems whose default code page is not UTF-8 (e.g. cp936 on zh-CN). The parser only matches the ASCII prefixes CommandLine= and ProcessId=, so dropping undecodable bytes is safe. Closes #17049.
This commit is contained in:
@@ -279,9 +279,11 @@ def _scan_gateway_pids(exclude_pids: set[int], all_profiles: bool = False) -> li
|
||||
["wmic", "process", "get", "ProcessId,CommandLine", "/FORMAT:LIST"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
encoding="utf-8",
|
||||
errors="ignore",
|
||||
timeout=10,
|
||||
)
|
||||
if result.returncode != 0:
|
||||
if result.returncode != 0 or result.stdout is None:
|
||||
return []
|
||||
current_cmd = ""
|
||||
for line in result.stdout.split("\n"):
|
||||
|
||||
Reference in New Issue
Block a user