diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2022-05-03 15:16:18 +0200 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2022-05-03 15:16:18 +0200 |
commit | 5a6de512ab5d46f7a0f019e7345e800a0a274a62 (patch) | |
tree | 5a51a03bdeda43355f606b4f1e3032cbee09d0e7 /winsup/cygwin/dcrt0.cc | |
parent | 28970dae34522059e094eb7db466404facb09460 (diff) | |
download | newlib-5a6de512ab5d46f7a0f019e7345e800a0a274a62.zip newlib-5a6de512ab5d46f7a0f019e7345e800a0a274a62.tar.gz newlib-5a6de512ab5d46f7a0f019e7345e800a0a274a62.tar.bz2 |
Cygwin: always add sigmask to child info
Even after fork, we might need the parent sigmask without having
access to the real _main_tls. There's a short time at process startup,
when _main_tls points to the system-allocated stack, but wait_sig is
already running. If we can't lock _main_tls, because find_tls can't
find it yet, we now access the parent's sigmask via child_info.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index dee8482..8869cbd 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -845,7 +845,7 @@ dll_crt0_1 (void *) _my_tls.incyg++; /* Inherit "parent" exec'ed process sigmask */ if (spawn_info && !in_forkee) - _my_tls.sigmask = spawn_info->moreinfo->sigmask; + _my_tls.sigmask = spawn_info->sigmask; if (dynamically_loaded) sigproc_init (); |