From f40f50ead0c46db984e9b970e0361e85c396c200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 22 Apr 2024 10:39:36 +0200 Subject: [PATCH] modules: Fix potential infinite loop in module collection Fixes #12407 --- modules/collect.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/collect.go b/modules/collect.go index e7d5dbe29..dff71924b 100644 --- a/modules/collect.go +++ b/modules/collect.go @@ -261,7 +261,10 @@ func (c *collector) add(owner *moduleAdapter, moduleImport Import) (*moduleAdapt // This will select the latest release-version (not beta etc.). versionQuery = "upgrade" } - if err := c.Get(fmt.Sprintf("%s@%s", modulePath, versionQuery)); err != nil { + + // Note that we cannot use c.Get for this, as that may + // trigger a new module collection and potentially create a infinite loop. + if err := c.get(fmt.Sprintf("%s@%s", modulePath, versionQuery)); err != nil { return nil, err } if err := c.loadModules(); err != nil {