mirror of
https://github.com/anchore/syft.git
synced 2026-02-12 02:26:42 +01:00
fix: Follow symlinks when searching for globs in all-layers scope (#1221)
This commit is contained in:
parent
dd7c654ed0
commit
4d2f18218c
@ -126,7 +126,7 @@ func (r *allLayersResolver) FilesByGlob(patterns ...string) ([]Location, error)
|
||||
|
||||
for _, pattern := range patterns {
|
||||
for idx, layerIdx := range r.layers {
|
||||
results, err := r.img.Layers[layerIdx].Tree.FilesByGlob(pattern, filetree.FollowBasenameLinks, filetree.DoNotFollowDeadBasenameLinks)
|
||||
results, err := r.img.Layers[layerIdx].SquashedTree.FilesByGlob(pattern, filetree.FollowBasenameLinks, filetree.DoNotFollowDeadBasenameLinks)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to resolve files by glob (%s): %w", pattern, err)
|
||||
}
|
||||
|
||||
20
test/integration/all_layers_squashed_comparison_test.go
Normal file
20
test/integration/all_layers_squashed_comparison_test.go
Normal file
@ -0,0 +1,20 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/anchore/syft/syft/source"
|
||||
)
|
||||
|
||||
func Test_AllLayersIncludesSquashed(t *testing.T) {
|
||||
// This is a verification test for issue #894 (https://github.com/anchore/syft/issues/894)
|
||||
allLayers, _ := catalogFixtureImage(t, "image-suse-all-layers", source.AllLayersScope, nil)
|
||||
squashed, _ := catalogFixtureImage(t, "image-suse-all-layers", source.SquashedScope, nil)
|
||||
|
||||
lenAllLayers := len(allLayers.Artifacts.PackageCatalog.Sorted())
|
||||
lenSquashed := len(squashed.Artifacts.PackageCatalog.Sorted())
|
||||
|
||||
if lenAllLayers < lenSquashed {
|
||||
t.Errorf("squashed has more packages than all-layers: %d > %d", lenSquashed, lenAllLayers)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
FROM registry.suse.com/suse/sle15:15.3.17.20.20
|
||||
RUN zypper in -y wget
|
||||
Loading…
x
Reference in New Issue
Block a user