Improved patch recognition.

This commit is contained in:
László Valkó 2023-04-16 02:06:54 +02:00
parent 2c0cdab529
commit 898cb3c39a

View file

@ -754,6 +754,39 @@ sub read_os_patches ($$$)
}
print_log('global', DEBUG3, 'Found OS patch information for %s: kbnum=%s current=%s', $kb, $number, $$p{Current});
}
elsif ($installname =~ /^Package_for_([0-9a-zA-Z_]+)~/o) {
my $kb = $1;
if ($installname =~ /^[^~]*~[^~]*~[^~]*~[^~]*~(\d+(\.\d+)*)/o) {
my $version = $1;
if (defined $version && $version ne '') {
my @versionlist = split /\./, $version;
my $revnum = $versionlist[2];
if (defined $revnum && $revnum =~ /^\d+$/o && $revnum > 1) {
$kb .= 'v'.$revnum;
}
}
}
my $p = $$patches{$kb};
if (! defined $p) {
$p = $$patches{$kb} = {
Type => 'OS',
Packages => { OS => 1 },
InstallName => $name,
InstallClient => $installclient,
Original => $original,
Update => $update,
KB => $kb,
Number => $kb,
Current => 0,
Flags => 0
};
}
if (defined $state) {
$$p{Flags} |= $state;
$$p{Current} = 1 if $state & 0x20;
}
print_log('global', DEBUG3, 'Found OS patch information for %s: kbnum=%s current=%s', $kb, $kb, $$p{Current});
}
if ($name =~ /^([^~]*)~([^~]*)~([^~]*)~([^~]*)~([^~]*)$/o) {
my $pkg = $$pkgs{$name};
if (! defined $pkg) {