Commit fa0c67a28a for openssl.org

commit fa0c67a28a5a7d6ebeae7cb14d036780485e2fcd
Author: Dmitry Belyavskiy <beldmit@gmail.com>
Date:   Wed Jun 25 17:33:16 2025 +0200

    Better lookup for openssl executable

    Fixes #27891

    Reviewed-by: Tomas Mraz <tomas@openssl.org>
    Reviewed-by: Neil Horman <nhorman@openssl.org>
    Reviewed-by: Matt Caswell <matt@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/27895)

diff --git a/tools/c_rehash.in b/tools/c_rehash.in
index 4dd1b44682..7b574daef7 100644
--- a/tools/c_rehash.in
+++ b/tools/c_rehash.in
@@ -63,10 +63,10 @@ if (defined(&Cwd::getcwd)) {
 my $path_delim = ($pwd =~ /^[a-z]\:/i) ? ';' : ':';
 $ENV{PATH} = "$prefix/bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : "");

-if (! -x $openssl) {
+if (!(-f $openssl && -x $openssl)) {
     my $found = 0;
     foreach (split /$path_delim/, $ENV{PATH}) {
-        if (-x "$_/$openssl") {
+        if (-f "$_/$openssl" && -x "$_/$openssl") {
             $found = 1;
             $openssl = "$_/$openssl";
             last;
@@ -88,7 +88,7 @@ if (@ARGV) {

 if (-d $dirlist[0]) {
     chdir $dirlist[0];
-    $openssl="$pwd/$openssl" if (!-x $openssl);
+    $openssl="$pwd/$openssl" if (!(-f $openssl && -x $openssl));
     chdir $pwd;
 }