Reject empty env var keys (#4410)

This commit is contained in:
fengguodong 2026-06-29 21:42:06 +08:00 committed by GitHub
commit 0d8844d5a7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 0 deletions

View file

@ -66,6 +66,9 @@ def _parse_env_var(env_var: str) -> tuple[str, str]:
logger.error("Invalid environment variable format. Must be KEY=VALUE")
sys.exit(1)
key, value = env_var.split("=", 1)
if not key.strip():
logger.error("Invalid environment variable format. KEY cannot be empty")
sys.exit(1)
return key.strip(), value.strip()

View file

@ -47,6 +47,11 @@ def parse_env_var(env_var: str) -> tuple[str, str]:
)
sys.exit(1)
key, value = env_var.split("=", 1)
if not key.strip():
print(
f"[red]Invalid environment variable format: '[bold]{env_var}[/bold]'. KEY cannot be empty[/red]"
)
sys.exit(1)
return key.strip(), value.strip()

View file

@ -1,4 +1,7 @@
import pytest
from fastmcp.cli.cli import _parse_env_var
from fastmcp.cli.install.shared import parse_env_var
class TestEnvVarParsing:
@ -27,3 +30,10 @@ class TestEnvVarParsing:
key, value = _parse_env_var("EMPTY_VAR=")
assert key == "EMPTY_VAR"
assert value == ""
@pytest.mark.parametrize("parser", [_parse_env_var, parse_env_var])
def test_parse_env_var_empty_key_exits(self, parser):
"""Environment variable names cannot be empty."""
with pytest.raises(SystemExit) as exc_info:
parser(" =value")
assert exc_info.value.code == 1