diff --git a/app.py b/app.py index 953637f..f3b765c 100644 --- a/app.py +++ b/app.py @@ -271,6 +271,8 @@ def server_host_value(value: Any = None) -> str: """Return a non-empty server host string.""" if value is None: value = config_section("server").get("host", "0.0.0.0") + if not isinstance(value, str): + return "0.0.0.0" host = str(value or "").strip() return host if host else "0.0.0.0" diff --git a/tests/test_vibe_status.py b/tests/test_vibe_status.py index 8cdb0fd..f13d11e 100644 --- a/tests/test_vibe_status.py +++ b/tests/test_vibe_status.py @@ -461,6 +461,12 @@ def test_settings_config_from_params_normalizes_server_values(self): self.assertEqual(updated["server"]["port"], 65535) self.assertEqual(updated["server"]["host"], "0.0.0.0") + def test_server_host_value_rejects_non_string_values(self): + self.assertEqual(app.server_host_value(["127.0.0.1"]), "0.0.0.0") + self.assertEqual(app.server_host_value({"host": "127.0.0.1"}), "0.0.0.0") + self.assertEqual(app.server_host_value(127001), "0.0.0.0") + self.assertEqual(app.server_host_value(" 127.0.0.1 "), "127.0.0.1") + def test_parse_settings_form_keeps_blank_host_for_normalization(self): base_config = app.merge_configs(app.DEFAULT_CONFIG, { "server": {"port": 8080, "host": "127.0.0.1"},