Skip to content

Commit 61113f4

Browse files
committed
Native Image SBOM: Add Support for Locations Data
Signed-off-by: Joel Rudsberg <[email protected]>
1 parent 39441f1 commit 61113f4

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

syft/pkg/cataloger/java/graalvm_native_image_cataloger.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ func (ni nativeImagePE) fetchPkgs() (pkgs []pkg.Package, relationships []artifac
508508
}
509509

510510
// fetchPkgs provides the packages available in a UnionReader.
511-
func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package, []artifact.Relationship) {
511+
func fetchPkgs(reader unionreader.UnionReader, location file.Location) ([]pkg.Package, []artifact.Relationship) {
512512
var pkgs []pkg.Package
513513
var relationships []artifact.Relationship
514514
imageFormats := []func(string, io.ReaderAt) (nativeImage, error){newElf, newMachO, newPE}
@@ -520,6 +520,7 @@ func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package,
520520
log.Debugf("failed to open the java native-image binary: %v", err)
521521
return nil, nil
522522
}
523+
filename := location.RealPath
523524
for _, r := range readers {
524525
for _, makeNativeImage := range imageFormats {
525526
ni, err := makeNativeImage(filename, r)
@@ -534,6 +535,10 @@ func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package,
534535
log.Tracef("unable to extract SBOM from possible java native-image %s: %v", filename, err)
535536
continue
536537
}
538+
// Associate extracted packages with the native image location
539+
for i := range newPkgs {
540+
newPkgs[i].Locations.Add(location)
541+
}
537542
pkgs = append(pkgs, newPkgs...)
538543
relationships = append(relationships, newRelationships...)
539544
}
@@ -574,6 +579,6 @@ func processLocation(location file.Location, resolver file.Resolver) ([]pkg.Pack
574579
if err != nil {
575580
return nil, nil, err
576581
}
577-
pkgs, relationships := fetchPkgs(reader, location.RealPath)
582+
pkgs, relationships := fetchPkgs(reader, location)
578583
return pkgs, relationships, nil
579584
}

0 commit comments

Comments
 (0)