mk-ca-bundle.pl: use open() with argument list to replace backticks

On Windows this requires Perl 5.22 from year 2015.

Also:
- mdlinkcheck: delete redundant error handling logic.
  Follow-up to 77be4a7ab2 #19437

Closes #19461
This commit is contained in:
Viktor Szakats 2025-11-11 11:09:36 +01:00
parent f544eb97da
commit d499aa5238
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
2 changed files with 13 additions and 9 deletions

View file

@ -145,10 +145,6 @@ sub checkurl {
@content = <$fh>;
close $fh;
}
else {
print STDERR "FAIL\n";
return 1; # fail
}
if(!$content[0]) {
print STDERR "FAIL\n";
return 1; # fail

View file

@ -247,7 +247,9 @@ sub sha256 {
close(FILE);
} else {
# Use OpenSSL command if Perl Digest::SHA modules not available
$result = `"$openssl" dgst -r -sha256 "$_[0]"`;
open(my $fh, '-|', $openssl, 'dgst', '-r', '-sha256', $_[0]) or die "Failed running openssl on '$_[0]': $!";
$result = <$fh>; # read first line
close $fh;
$result =~ s/^([0-9a-f]{64}) .+/$1/is;
}
return $result;
@ -311,10 +313,16 @@ if(!$opt_n) {
if($curl) {
if($curl =~ /^Protocols:.* https( |$)/m) {
report "Get certdata with curl!";
my $proto = !$opt_k ? "--proto =https" : "";
my $quiet = $opt_q ? "-s" : "";
my @out = `curl -Lw %{response_code} $proto $quiet -o "$txt" "$url"`;
if(!$? && @out && $out[0] == 200) {
my @opts = ();
push @opts, '--proto', '=https' if !$opt_k;
push @opts, '-s' if $opt_q;
my $out = '';
if(open(my $fh, '-|', 'curl', '-Lw', '%{response_code}', (@opts), '-o', $txt, $url)) {
$out = <$fh>; # read first line
chomp $out;
close $fh;
}
if($out && $out == 200) {
$fetched = 1;
report "Downloaded $txt";
}