On Feb 12 16:57, Igor Podgainoi wrote:
> Under Windows on Arm (AArch64), the function hook_or_detect_cygwin will
> return NULL early, which will cause the call to real_path.set_cygexec
> in av::setup to accept false as a parameter instead of true.
> 
> Afterwards, in child_info_spawn::worker the call to
> child_info_spawn::set would eventually pass that false result of
> real_path.iscygexec() to the child_info constructor as the boolean
> variable need_subproc_ready, where the flag _CI_ISCYGWIN will be
> erroneously not set.
> 
> Later in child_info_spawn::worker the failed iscygwin() flag check will
> cause the "parent" process handle to become non-inheritable. This patch
> fixes the non-inheritability issue by introducing a new check for the
> IMAGE_FILE_MACHINE_ARM64 constant in the function PEHeaderFromHModule.
> 
> Tests fixed on AArch64:
> winsup.api/signal-into-win32-api.exe
> winsup.api/ltp/fcntl07.exe
> winsup.api/ltp/fcntl07B.exe
> winsup.api/posix_spawn/chdir.exe
> winsup.api/posix_spawn/fds.exe
> winsup.api/posix_spawn/signals.exe
> 
> Signed-off-by: Igor Podgainoi <[email protected]>
> ---
>  winsup/cygwin/hookapi.cc | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/winsup/cygwin/hookapi.cc b/winsup/cygwin/hookapi.cc
> index ee2edbafe..b0126ac04 100644
> --- a/winsup/cygwin/hookapi.cc
> +++ b/winsup/cygwin/hookapi.cc
> @@ -45,6 +45,8 @@ PEHeaderFromHModule (HMODULE hModule)
>      {
>      case IMAGE_FILE_MACHINE_AMD64:
>        break;
> +    case IMAGE_FILE_MACHINE_ARM64:
> +      break;
>      default:
>        return NULL;
>      }
> -- 
> 2.43.0

Pushed.


Thanks,
Corinna

Reply via email to