Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(sbom): don't overwrite srcEpoch when decoding SBOM files #6866

Merged

Conversation

DmitriyLewen
Copy link
Contributor

@DmitriyLewen DmitriyLewen commented Jun 6, 2024

Description

Trivy stores source information in properties.
So, we only need to overwrite the source information if srcName and srcVersion are not found (it means that we decoding third-party SBOMs).

Related issues

Checklist

  • I've read the guidelines for contributing to this repository.
  • I've followed the conventions in the PR title.
  • I've added tests that prove my fix is effective or that my feature works.
  • I've updated the documentation with the relevant information (if needed).
  • I've added usage information (if the PR introduces new options)
  • I've included a "before" and "after" example to the description (if the PR is a user interface change).

@DmitriyLewen DmitriyLewen self-assigned this Jun 6, 2024
@DmitriyLewen DmitriyLewen changed the title fix(bom): don't overwrite srcEpoch when decoding the BOM fix(sbom): don't overwrite srcEpoch when decoding SBOM files Jun 6, 2024
@DmitriyLewen DmitriyLewen marked this pull request as ready for review June 6, 2024 10:17
Copy link
Collaborator

@knqyf263 knqyf263 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if returning boolean from parseSrcVersion? It returns true if we update the source package.

@DmitriyLewen
Copy link
Contributor Author

we can't use parseSrcVersion. c.SrcVersion is empty for cyclonedx, because we inserted source info from properties to pkg:

trivy/pkg/sbom/io/decode.go

Lines 210 to 219 in e8d8af4

case core.PropertySrcName:
pkg.SrcName = prop.Value
case core.PropertySrcVersion:
pkg.SrcVersion = prop.Value
case core.PropertySrcRelease:
pkg.SrcRelease = prop.Value
case core.PropertySrcEpoch:
if pkg.SrcEpoch, err = strconv.Atoi(prop.Value); err != nil {
return nil, xerrors.Errorf("invalid src epoch: %w", err)
}

@knqyf263 knqyf263 added this pull request to the merge queue Jun 7, 2024
Merged via the queue into aquasecurity:main with commit 04af59c Jun 7, 2024
12 checks passed
@aqua-bot aqua-bot mentioned this pull request Jun 7, 2024
@knqyf263
Copy link
Collaborator

knqyf263 commented Jun 7, 2024

@aqua-bot backport release/v0.52

@aqua-bot
Copy link
Contributor

aqua-bot commented Jun 7, 2024

Backport PR created: #6881

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bug(bom): overwrite epoch if srcEpoch is 0
3 participants