internal/{osvutils,version}: move AffectsSemver and rename semver package
Moves AffectsSemver function to the internal/osvutils package, and
renames the internal semver package to "version" to avoid collision
with the x/mod/semver package.
Change-Id: I49e8875c18ec92578f5ab8300a54d1082b4f6c6d
Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/495980
Run-TryBot: Tatiana Bradley <tatianabradley@google.com>
Reviewed-by: Tatiana Bradley <tatianabradley@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/cmd/vulnreport/exported_functions.go b/cmd/vulnreport/exported_functions.go
index 439a296..b100833 100644
--- a/cmd/vulnreport/exported_functions.go
+++ b/cmd/vulnreport/exported_functions.go
@@ -14,8 +14,8 @@
"golang.org/x/tools/go/ssa"
"golang.org/x/vulndb/cmd/vulnreport/internal/vulnentries"
"golang.org/x/vulndb/internal/derrors"
+ "golang.org/x/vulndb/internal/osvutils"
"golang.org/x/vulndb/internal/report"
- "golang.org/x/vulndb/internal/semver"
)
// exportedFunctions returns a set of vulnerable functions exported by a set of packages
@@ -79,7 +79,7 @@
// can check semver ranges.
o := r.GenerateOSVEntry("", time.Now())
for _, a := range o.Affected {
- if semver.AffectsSemver(a.Ranges, version) {
+ if osvutils.AffectsSemver(a.Ranges, version) {
return true
}
}
diff --git a/cmd/vulnreport/main.go b/cmd/vulnreport/main.go
index 8104c14..ae2ddbe 100644
--- a/cmd/vulnreport/main.go
+++ b/cmd/vulnreport/main.go
@@ -39,9 +39,9 @@
"golang.org/x/vulndb/internal/gitrepo"
"golang.org/x/vulndb/internal/issues"
"golang.org/x/vulndb/internal/osv"
+ "golang.org/x/vulndb/internal/osvutils"
"golang.org/x/vulndb/internal/proxy"
"golang.org/x/vulndb/internal/report"
- isem "golang.org/x/vulndb/internal/semver"
)
var (
@@ -723,7 +723,7 @@
// If some symbol is in the std library at a different version,
// we may derive the wrong symbols for this package and other.
// In this case, skip updating DerivedSymbols.
- affected := isem.AffectsSemver(report.AffectedRanges(m.Versions), ver.V())
+ affected := osvutils.AffectsSemver(report.AffectedRanges(m.Versions), ver.V())
if ver == "" || !affected {
fmt.Fprintf(os.Stderr, "Current Go version %q is not in a vulnerable range, skipping symbol checks.\n", gover)
continue
diff --git a/internal/semver/affects.go b/internal/osvutils/affects.go
similarity index 83%
rename from internal/semver/affects.go
rename to internal/osvutils/affects.go
index 495044c..07cb2ae 100644
--- a/internal/semver/affects.go
+++ b/internal/osvutils/affects.go
@@ -2,13 +2,14 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package semver
+package osvutils
import (
"sort"
"golang.org/x/mod/semver"
"golang.org/x/vulndb/internal/osv"
+ "golang.org/x/vulndb/internal/version"
)
func AffectsSemver(ranges []osv.Range, v string) bool {
@@ -52,7 +53,7 @@
}
// Strip and then add the semver prefix so we can support bare versions,
// versions prefixed with 'v', and versions prefixed with 'go'.
- v = CanonicalizeSemverPrefix(v)
+ v = version.CanonicalizeSemverPrefix(v)
// Sort events by semver versions. Event for beginning
// of time, if present, always comes first.
sort.SliceStable(ar.Events, func(i, j int) bool {
@@ -74,14 +75,14 @@
if e2.Fixed != "" {
v2 = e2.Fixed
}
- return semver.Compare(CanonicalizeSemverPrefix(v1), CanonicalizeSemverPrefix(v2)) < 0
+ return semver.Compare(version.CanonicalizeSemverPrefix(v1), version.CanonicalizeSemverPrefix(v2)) < 0
})
var affected bool
for _, e := range ar.Events {
if !affected && e.Introduced != "" {
- affected = e.Introduced == "0" || semver.Compare(v, CanonicalizeSemverPrefix(e.Introduced)) >= 0
+ affected = e.Introduced == "0" || semver.Compare(v, version.CanonicalizeSemverPrefix(e.Introduced)) >= 0
} else if affected && e.Fixed != "" {
- affected = semver.Compare(v, CanonicalizeSemverPrefix(e.Fixed)) < 0
+ affected = semver.Compare(v, version.CanonicalizeSemverPrefix(e.Fixed)) < 0
}
}
return affected
diff --git a/internal/semver/affects_test.go b/internal/osvutils/affects_test.go
similarity index 99%
rename from internal/semver/affects_test.go
rename to internal/osvutils/affects_test.go
index f7694f9..4522693 100644
--- a/internal/semver/affects_test.go
+++ b/internal/osvutils/affects_test.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package semver
+package osvutils
import (
"testing"
diff --git a/internal/osvutils/validate.go b/internal/osvutils/validate.go
index e3ebba5..09a56a5 100644
--- a/internal/osvutils/validate.go
+++ b/internal/osvutils/validate.go
@@ -187,12 +187,12 @@
return semver.Compare("v"+v, "v"+w) < 0
}
-type version struct {
+type event struct {
v string
introduced bool
}
-func parseRangeEvent(e *osv.RangeEvent) (*version, error) {
+func parseRangeEvent(e *osv.RangeEvent) (*event, error) {
introduced, fixed := e.Introduced, e.Fixed
var v string
@@ -203,7 +203,7 @@
case introduced != "" && fixed != "":
return nil, errBothIntroducedAndFixed
case introduced == "0":
- return &version{v: "0", introduced: true}, nil
+ return &event{v: "0", introduced: true}, nil
case introduced != "":
v = introduced
isIntroduced = true
@@ -216,7 +216,7 @@
return nil, fmt.Errorf("%w (found %s)", errInvalidSemver, v)
}
- return &version{v: v, introduced: isIntroduced}, nil
+ return &event{v: v, introduced: isIntroduced}, nil
}
func validateEcosystemSpecific(es *osv.EcosystemSpecific, module string) error {
diff --git a/internal/semver/semver.go b/internal/version/semver.go
similarity index 95%
rename from internal/semver/semver.go
rename to internal/version/semver.go
index 890ecd9..0c28935 100644
--- a/internal/semver/semver.go
+++ b/internal/version/semver.go
@@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Package semver provides shared utilities for manipulating
+// Package version provides shared utilities for manipulating
// Go semantic versions.
-package semver
+package version
import (
"regexp"
diff --git a/internal/semver/semver_test.go b/internal/version/semver_test.go
similarity index 96%
rename from internal/semver/semver_test.go
rename to internal/version/semver_test.go
index 8a46228..236c547 100644
--- a/internal/semver/semver_test.go
+++ b/internal/version/semver_test.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package semver
+package version
import (
"testing"