mirror of
https://github.com/aquasecurity/trivy.git
synced 2026-02-05 16:23:28 +08:00
fix(python): compare pkg names from poetry.lock and pyproject.toml in lowercase (#6852)
This commit is contained in:
@@ -105,7 +105,7 @@ func (p *Parser) parseDependencies(deps map[string]any, pkgVersions map[string][
|
||||
}
|
||||
|
||||
func (p *Parser) parseDependency(name string, versRange any, pkgVersions map[string][]string) (string, error) {
|
||||
name = normalizePkgName(name)
|
||||
name = NormalizePkgName(name)
|
||||
vers, ok := pkgVersions[name]
|
||||
if !ok {
|
||||
return "", xerrors.Errorf("no version found for %q", name)
|
||||
@@ -149,9 +149,11 @@ func matchVersion(currentVersion, constraint string) (bool, error) {
|
||||
return c.Check(v), nil
|
||||
}
|
||||
|
||||
func normalizePkgName(name string) string {
|
||||
// NormalizePkgName normalizes the package name based on pep-0426
|
||||
func NormalizePkgName(name string) string {
|
||||
// The package names don't use `_`, `.` or upper case, but dependency names can contain them.
|
||||
// We need to normalize those names.
|
||||
// cf. https://peps.python.org/pep-0426/#name
|
||||
name = strings.ToLower(name) // e.g. https://github.com/python-poetry/poetry/blob/c8945eb110aeda611cc6721565d7ad0c657d453a/poetry.lock#L819
|
||||
name = strings.ReplaceAll(name, "_", "-") // e.g. https://github.com/python-poetry/poetry/blob/c8945eb110aeda611cc6721565d7ad0c657d453a/poetry.lock#L50
|
||||
name = strings.ReplaceAll(name, ".", "-") // e.g. https://github.com/python-poetry/poetry/blob/c8945eb110aeda611cc6721565d7ad0c657d453a/poetry.lock#L816
|
||||
|
||||
Reference in New Issue
Block a user