From 576e729c84d8a99823f96e692bb5c69f92f2f81c Mon Sep 17 00:00:00 2001 From: Keith Zantow Date: Fri, 30 May 2025 11:36:57 -0400 Subject: [PATCH] fix: revert incorrect graalvm unknown behavior (#3944) Signed-off-by: Keith Zantow --- .../java/graalvm_native_image_cataloger.go | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/syft/pkg/cataloger/java/graalvm_native_image_cataloger.go b/syft/pkg/cataloger/java/graalvm_native_image_cataloger.go index d259d2582..a5d57911d 100644 --- a/syft/pkg/cataloger/java/graalvm_native_image_cataloger.go +++ b/syft/pkg/cataloger/java/graalvm_native_image_cataloger.go @@ -16,7 +16,6 @@ import ( "github.com/anchore/syft/internal" "github.com/anchore/syft/internal/log" "github.com/anchore/syft/internal/mimetype" - "github.com/anchore/syft/internal/unknown" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/file" "github.com/anchore/syft/syft/format/cyclonedxjson" @@ -509,7 +508,7 @@ func (ni nativeImagePE) fetchPkgs() (pkgs []pkg.Package, relationships []artifac } // fetchPkgs provides the packages available in a UnionReader. -func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package, []artifact.Relationship, error) { +func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package, []artifact.Relationship) { var pkgs []pkg.Package var relationships []artifact.Relationship imageFormats := []func(string, io.ReaderAt) (nativeImage, error){newElf, newMachO, newPE} @@ -519,9 +518,8 @@ func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package, readers, err := unionreader.GetReaders(reader) if err != nil { log.Debugf("failed to open the java native-image binary: %v", err) - return nil, nil, nil + return nil, nil } - var unknowns error for _, r := range readers { for _, makeNativeImage := range imageFormats { ni, err := makeNativeImage(filename, r) @@ -534,14 +532,13 @@ func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package, newPkgs, newRelationships, err := ni.fetchPkgs() if err != nil { log.Tracef("unable to extract SBOM from possible java native-image %s: %v", filename, err) - unknowns = unknown.Join(unknowns, fmt.Errorf("unable to extract SBOM from possible java native-image %s: %w", filename, err)) continue } pkgs = append(pkgs, newPkgs...) relationships = append(relationships, newRelationships...) } } - return pkgs, relationships, unknowns + return pkgs, relationships } // Catalog attempts to find any native image executables reachable from a resolver. @@ -552,18 +549,17 @@ func (c *nativeImageCataloger) Catalog(_ context.Context, resolver file.Resolver if err != nil { return pkgs, nil, fmt.Errorf("failed to find binaries by mime types: %w", err) } - var errs error + for _, location := range fileMatches { newPkgs, newRelationships, err := processLocation(location, resolver) if err != nil { - errs = unknown.Append(errs, location, err) - continue + return nil, nil, err } pkgs = append(pkgs, newPkgs...) relationships = append(relationships, newRelationships...) } - return pkgs, relationships, errs + return pkgs, relationships, nil } func processLocation(location file.Location, resolver file.Resolver) ([]pkg.Package, []artifact.Relationship, error) { @@ -578,6 +574,6 @@ func processLocation(location file.Location, resolver file.Resolver) ([]pkg.Pack if err != nil { return nil, nil, err } - pkgs, relationships, err := fetchPkgs(reader, location.RealPath) - return pkgs, relationships, err + pkgs, relationships := fetchPkgs(reader, location.RealPath) + return pkgs, relationships, nil }