From 65923fc25518a17df35bb6abd73f41e96b395e0a Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 13 Mar 2025 08:59:19 +0100 Subject: [PATCH] fix(syncthing): don't auto upgrade to higher major on startup (#9989) We avoided upgrading to newer major versions during normal auto upgrade procedures, but currently not in the initial upgrade check on startup. --- cmd/syncthing/main.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go index 8d9bbc8d7..55dea93d7 100644 --- a/cmd/syncthing/main.go +++ b/cmd/syncthing/main.go @@ -830,6 +830,10 @@ func initialAutoUpgradeCheck(misc *db.NamespacedKV) (upgrade.Release, error) { if err != nil { return upgrade.Release{}, err } + if upgrade.CompareVersions(release.Tag, build.Version) == upgrade.MajorNewer { + return upgrade.Release{}, errors.New("higher major version") + } + if lastVersion, ok, err := misc.String(upgradeVersionKey); err == nil && ok && lastVersion == release.Tag { // Only check time if we try to upgrade to the same release. if lastTime, ok, err := misc.Time(upgradeTimeKey); err == nil && ok && time.Since(lastTime) < upgradeRetryInterval {