From 10ff5b2283c576847cc11fb586091a73a8f938ad Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Tue, 16 Jun 2026 23:00:47 +0800 Subject: [PATCH] Add list type check before nodes[0] access in _normalize_link_nodes --- gns3server/api/routes/mcp/links.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gns3server/api/routes/mcp/links.py b/gns3server/api/routes/mcp/links.py index b340f122a..543cb39e1 100644 --- a/gns3server/api/routes/mcp/links.py +++ b/gns3server/api/routes/mcp/links.py @@ -59,11 +59,13 @@ def _normalize_link_nodes(nodes) -> list[dict[str, Any]]: """ if not nodes: return nodes + if not isinstance(nodes, list): + raise ValueError(f"nodes must be a list, got {type(nodes).__name__}: {nodes}") # Standard object format: [{"node_id": "...", ...}] if isinstance(nodes[0], dict): return nodes # Compact array format: ["uuid", ad, pt, "uuid", ad, pt] - if isinstance(nodes, list) and all(not isinstance(n, dict) for n in nodes): + if all(not isinstance(n, dict) for n in nodes): if len(nodes) != 6: raise ValueError( f"Compact link format requires exactly 6 elements "