From 2843cc1e846348034461e0ca05aca1300a01b004 Mon Sep 17 00:00:00 2001 From: archipelago Date: Thu, 23 Apr 2026 13:02:15 -0400 Subject: [PATCH] fix(container/image_versions): reject entries that are not image references The parser retained any key ending in _IMAGE, so a harmless-looking variable like NOT_AN_IMAGE="something" would be treated as a pinned container image. Add a value-shape check: the value must contain both a registry separator (/) and a tag separator (:) to qualify. --- core/archipelago/src/container/image_versions.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/archipelago/src/container/image_versions.rs b/core/archipelago/src/container/image_versions.rs index 23f4dc6a..bc094d2e 100644 --- a/core/archipelago/src/container/image_versions.rs +++ b/core/archipelago/src/container/image_versions.rs @@ -107,8 +107,11 @@ fn parse_image_versions(content: &str) -> HashMap { } } - // Keep only *_IMAGE entries - vars.retain(|k, _| k.ends_with("_IMAGE")); + // Keep only *_IMAGE entries whose value looks like a container image + // reference (contains a `:` tag separator and at least one `/` path + // component). Rejects placeholder values like "something" so a + // hand-edit typo in image-versions.sh never gets treated as an image. + vars.retain(|k, v| k.ends_with("_IMAGE") && v.contains(':') && v.contains('/')); vars }