diff --git a/cli/mizu/version/versionCheck.go b/cli/mizu/version/versionCheck.go index 1928805f4..4e0228d5c 100644 --- a/cli/mizu/version/versionCheck.go +++ b/cli/mizu/version/versionCheck.go @@ -75,6 +75,12 @@ func CheckNewerVersion(versionChan chan string) { gitHubVersionSemVer := semver.SemVersion(gitHubVersion) currentSemVer := semver.SemVersion(mizu.SemVer) + if !gitHubVersionSemVer.IsValid() || !currentSemVer.IsValid() { + logger.Log.Debugf("[ERROR] Semver version is not valid, github version %v, current version %v", gitHubVersion, currentSemVer) + versionChan <- "" + return + } + logger.Log.Debugf("Finished version validation, github version %v, current version %v, took %v", gitHubVersion, currentSemVer, time.Since(start)) if gitHubVersionSemVer.GreaterThan(currentSemVer) { diff --git a/shared/semver/semver.go b/shared/semver/semver.go index 441b610fb..547db0066 100644 --- a/shared/semver/semver.go +++ b/shared/semver/semver.go @@ -6,9 +6,17 @@ import ( type SemVersion string +func (v SemVersion) IsValid() bool { + re := regexp.MustCompile(`\d+`) + breakdown := re.FindAllString(string(v), 3) + + return len(breakdown) == 3 +} + func (v SemVersion) Breakdown() (string, string, string) { re := regexp.MustCompile(`\d+`) breakdown := re.FindAllString(string(v), 3) + return breakdown[0], breakdown[1], breakdown[2] }