From b5805f0bab2f3887b666cf84c74075e6c11878b9 Mon Sep 17 00:00:00 2001 From: Christian Dupuis Date: Wed, 4 Jan 2023 13:07:32 +0100 Subject: [PATCH] Fix ordinal creation --- sbom/index.go | 20 ++++++++++++-------- sbom/trivy.go | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/sbom/index.go b/sbom/index.go index ea7fb04..394bd71 100644 --- a/sbom/index.go +++ b/sbom/index.go @@ -211,15 +211,19 @@ func createLayerMapping(cache *registry.ImageCache) (*types.LayerMapping, error) diffIds := cache.Source.Image.Metadata.Config.RootFS.DiffIDs layers := cache.Source.Metadata.ImageMetadata.Layers - for i := range layers { - layer := layers[i] - diffId := diffIds[i] + li := 0 + for i, l := range cache.Source.Image.Metadata.Config.History { + if !l.EmptyLayer { + layer := layers[li] + diffId := diffIds[li] - lm.ByDiffId[diffId.String()] = layer.Digest - lm.ByDigest[layer.Digest] = diffId.String() - lm.OrdinalByDiffId[diffId.String()] = i - lm.DiffIdByOrdinal[i] = diffId.String() - lm.DigestByOrdinal[i] = layer.Digest + lm.ByDiffId[diffId.String()] = layer.Digest + lm.ByDigest[layer.Digest] = diffId.String() + lm.OrdinalByDiffId[diffId.String()] = i + lm.DiffIdByOrdinal[i] = diffId.String() + lm.DigestByOrdinal[i] = layer.Digest + li++ + } } skill.Log.Debugf("Created layer mapping") diff --git a/sbom/trivy.go b/sbom/trivy.go index d32177a..d426320 100644 --- a/sbom/trivy.go +++ b/sbom/trivy.go @@ -149,7 +149,7 @@ func trivySbom(cache *registry.ImageCache, lm *types.LayerMapping, resultChan ch Location: &types.Location{ Path: s.FilePath, Ordinal: lm.OrdinalByDiffId[s.Layer.DiffID], - Digest: s.Layer.Digest, + Digest: lm.ByDiffId[s.Layer.DiffID], DiffId: s.Layer.DiffID, }, }))