X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=tools%2Fc_rehash.in;h=8b6d3f56472aaf88bea54110545aef9fdcf7d9a3;hb=5741067deaedf83d1da94b753f1a3d0e8d86b955;hp=baec7c14ff4308a3062996597f0c27a1dbef54d0;hpb=439df5087f012e65b80c13ade8953778cc0b4704;p=oweals%2Fopenssl.git diff --git a/tools/c_rehash.in b/tools/c_rehash.in index baec7c14ff..8b6d3f5647 100644 --- a/tools/c_rehash.in +++ b/tools/c_rehash.in @@ -7,6 +7,7 @@ my $openssl; my $dir; +my $prefix; if(defined $ENV{OPENSSL}) { $openssl = $ENV{OPENSSL}; @@ -17,10 +18,10 @@ if(defined $ENV{OPENSSL}) { $ENV{PATH} .= ":$dir/bin"; -if(! -f $openssl) { +if(! -x $openssl) { my $found = 0; foreach (split /:/, $ENV{PATH}) { - if(-f "$_/$openssl") { + if(-x "$_/$openssl") { $found = 1; last; } @@ -100,7 +101,8 @@ sub check_file { sub link_hash_cert { my $fname = $_[0]; - my ($hash, $fprint) = `$openssl x509 -hash -fingerprint -noout -in $fname`; + $fname =~ s/'/'\\''/g; + my ($hash, $fprint) = `"$openssl" x509 -hash -fingerprint -noout -in '$fname'`; chomp $hash; chomp $fprint; $fprint =~ s/^.*=//; @@ -117,7 +119,12 @@ sub link_hash_cert { } $hash .= ".$suffix"; print "$fname => $hash\n"; - symlink $fname, $hash; + $symlink_exists=eval {symlink("",""); 1}; + if ($symlink_exists) { + symlink $fname, $hash; + } else { + system ("cp", $fname, $hash); + } $hashlist{$hash} = $fprint; } @@ -125,7 +132,8 @@ sub link_hash_cert { sub link_hash_crl { my $fname = $_[0]; - my ($hash, $fprint) = `$openssl crl -hash -fingerprint -noout -in $fname`; + $fname =~ s/'/'\\''/g; + my ($hash, $fprint) = `"$openssl" crl -hash -fingerprint -noout -in '$fname'`; chomp $hash; chomp $fprint; $fprint =~ s/^.*=//; @@ -142,7 +150,12 @@ sub link_hash_crl { } $hash .= ".r$suffix"; print "$fname => $hash\n"; - symlink $fname, $hash; + $symlink_exists=eval {symlink("",""); 1}; + if ($symlink_exists) { + symlink $fname, $hash; + } else { + system ("cp", $fname, $hash); + } $hashlist{$hash} = $fprint; }