@@ -508,7 +508,7 @@ func (ni nativeImagePE) fetchPkgs() (pkgs []pkg.Package, relationships []artifac
508
508
}
509
509
510
510
// 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 ) {
512
512
var pkgs []pkg.Package
513
513
var relationships []artifact.Relationship
514
514
imageFormats := []func (string , io.ReaderAt ) (nativeImage , error ){newElf , newMachO , newPE }
@@ -520,6 +520,7 @@ func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package,
520
520
log .Debugf ("failed to open the java native-image binary: %v" , err )
521
521
return nil , nil
522
522
}
523
+ filename := location .RealPath
523
524
for _ , r := range readers {
524
525
for _ , makeNativeImage := range imageFormats {
525
526
ni , err := makeNativeImage (filename , r )
@@ -534,6 +535,10 @@ func fetchPkgs(reader unionreader.UnionReader, filename string) ([]pkg.Package,
534
535
log .Tracef ("unable to extract SBOM from possible java native-image %s: %v" , filename , err )
535
536
continue
536
537
}
538
+ // Associate extracted packages with the native image location
539
+ for i := range newPkgs {
540
+ newPkgs [i ].Locations .Add (location )
541
+ }
537
542
pkgs = append (pkgs , newPkgs ... )
538
543
relationships = append (relationships , newRelationships ... )
539
544
}
@@ -574,6 +579,6 @@ func processLocation(location file.Location, resolver file.Resolver) ([]pkg.Pack
574
579
if err != nil {
575
580
return nil , nil , err
576
581
}
577
- pkgs , relationships := fetchPkgs (reader , location . RealPath )
582
+ pkgs , relationships := fetchPkgs (reader , location )
578
583
return pkgs , relationships , nil
579
584
}
0 commit comments