Skip to content

Commit 62ac34a

Browse files
committed
Fix querying the pkgid from rpm packages
We need to use SIGTAG_MD5 in that case.
1 parent e952afc commit 62ac34a

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

generate_sbom

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,13 +388,15 @@ sub dump_rpmdb {
388388

389389
sub read_rpm {
390390
my ($rpm) = @_;
391-
my %r = Build::Rpm::rpmq($rpm, qw{NAME VERSION RELEASE EPOCH ARCH LICENSE SOURCERPM DISTURL FILENAMES URL VENDOR FILEMODES FILEDIGESTS FILEDIGESTALGO SIGMD5});
391+
my $sigmd5tag = ref($rpm) ? 'SIGMD5' : 'SIGTAG_MD5';
392+
my %r = Build::Rpm::rpmq($rpm, qw{NAME VERSION RELEASE EPOCH ARCH LICENSE SOURCERPM DISTURL FILENAMES URL VENDOR FILEMODES FILEDIGESTS FILEDIGESTALGO}, $sigmd5tag);
392393
delete $r{$_} for qw{BASENAMES DIRNAMES DIRINDEXES}; # save mem
393-
for (qw{NAME VERSION RELEASE EPOCH ARCH LICENSE SOURCERPM DISTURL URL VENDOR FILEDIGESTALGO SIGMD5}) {
394+
for (qw{NAME VERSION RELEASE EPOCH ARCH LICENSE SOURCERPM DISTURL URL VENDOR FILEDIGESTALGO}, $sigmd5tag) {
394395
next unless $r{$_};
395396
die("bad rpm entry for $_\n") unless ref($r{$_}) eq 'ARRAY' && @{$r{$_}} == 1;
396397
$r{$_} = $r{$_}->[0];
397398
}
399+
$r{'SIGMD5'} = delete $r{$sigmd5tag} if $sigmd5tag eq 'SIGTAG_MD5' && exists($r{$sigmd5tag});
398400
delete $r{'LICENSE'} if $r{'NAME'} eq 'gpg-pubkey' && ($r{'LICENSE'} || '') eq 'pubkey';
399401
return \%r;
400402
}

0 commit comments

Comments
 (0)