diff --git a/syft/pkg/cataloger/rpmdb/parse_rpmdb.go b/syft/pkg/cataloger/rpmdb/parse_rpmdb.go index c1b794162..59ff6ee08 100644 --- a/syft/pkg/cataloger/rpmdb/parse_rpmdb.go +++ b/syft/pkg/cataloger/rpmdb/parse_rpmdb.go @@ -97,14 +97,19 @@ func extractRpmdbFileRecords(resolver source.FilePathResolver, entry *rpmdb.Pack for _, record := range entry.Files { // only persist RPMDB file records which exist in the image/directory, otherwise ignore them if resolver.HasPath(record.Path) { - records = append(records, pkg.RpmdbFileRecord{ - Path: record.Path, - Mode: pkg.RpmdbFileMode(record.Mode), - Size: int(record.Size), - Digest: file.Digest{ + var digest *file.Digest + if record.Digest != "" { + digest = &file.Digest{ Value: record.Digest, Algorithm: entry.DigestAlgorithm.String(), - }, + } + } + + records = append(records, pkg.RpmdbFileRecord{ + Path: record.Path, + Mode: pkg.RpmdbFileMode(record.Mode), + Size: int(record.Size), + Digest: digest, UserName: record.Username, GroupName: record.Groupname, Flags: record.Flags.String(), diff --git a/syft/pkg/rpmdb_metadata.go b/syft/pkg/rpmdb_metadata.go index 7984c9554..e67c9adef 100644 --- a/syft/pkg/rpmdb_metadata.go +++ b/syft/pkg/rpmdb_metadata.go @@ -37,7 +37,7 @@ type RpmdbFileRecord struct { Path string `json:"path"` Mode RpmdbFileMode `json:"mode"` Size int `json:"size"` - Digest file.Digest `json:"digest"` + Digest *file.Digest `json:"digest,omitempty"` UserName string `json:"userName"` GroupName string `json:"groupName"` Flags string `json:"flags"`