* globals.cc (hntdll): Define/declare.
* exceptions.cc (inside_kernel): Don't call GetModuleFileName if we know we're in ntdll. * sigproc.cc (wait_sig): Initialize hntdll.
This commit is contained in:
parent
db0d50a67d
commit
ae8456bdf2
|
@ -1,3 +1,10 @@
|
||||||
|
2013-12-09 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||||
|
|
||||||
|
* globals.cc (hntdll): Define/declare.
|
||||||
|
* exceptions.cc (inside_kernel): Don't call GetModuleFileName if we
|
||||||
|
know we're in ntdll.
|
||||||
|
* sigproc.cc (wait_sig): Initialize hntdll.
|
||||||
|
|
||||||
2013-12-09 Corinna Vinschen <corinna@vinschen.de>
|
2013-12-09 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* include/cygwin/stdlib.h (initstate, random, setstate, srandom):
|
* include/cygwin/stdlib.h (initstate, random, setstate, srandom):
|
||||||
|
|
|
@ -394,6 +394,9 @@ _cygtls::inside_kernel (CONTEXT *cx)
|
||||||
# define h ((HMODULE) m.AllocationBase)
|
# define h ((HMODULE) m.AllocationBase)
|
||||||
if (!h || m.State != MEM_COMMIT) /* Be defensive */
|
if (!h || m.State != MEM_COMMIT) /* Be defensive */
|
||||||
res = true;
|
res = true;
|
||||||
|
else if (h == hntdll)
|
||||||
|
res = true; /* Calling GetModuleFilename on ntdll.dll
|
||||||
|
can hang */
|
||||||
else if (h == user_data->hmodule)
|
else if (h == user_data->hmodule)
|
||||||
res = false;
|
res = false;
|
||||||
else if (!GetModuleFileNameW (h, checkdir, windows_system_directory_length + 6))
|
else if (!GetModuleFileNameW (h, checkdir, windows_system_directory_length + 6))
|
||||||
|
|
|
@ -23,6 +23,7 @@ HANDLE NO_COPY hProcToken;
|
||||||
HANDLE NO_COPY hProcImpToken;
|
HANDLE NO_COPY hProcImpToken;
|
||||||
HANDLE my_wr_proc_pipe;
|
HANDLE my_wr_proc_pipe;
|
||||||
HMODULE NO_COPY cygwin_hmodule;
|
HMODULE NO_COPY cygwin_hmodule;
|
||||||
|
HMODULE NO_COPY hntdll;
|
||||||
int NO_COPY sigExeced;
|
int NO_COPY sigExeced;
|
||||||
WCHAR windows_system_directory[MAX_PATH];
|
WCHAR windows_system_directory[MAX_PATH];
|
||||||
UINT windows_system_directory_length;
|
UINT windows_system_directory_length;
|
||||||
|
|
|
@ -1205,6 +1205,8 @@ wait_sig (VOID *)
|
||||||
sigproc_printf ("entering ReadFile loop, my_readsig %p, my_sendsig %p",
|
sigproc_printf ("entering ReadFile loop, my_readsig %p, my_sendsig %p",
|
||||||
my_readsig, my_sendsig);
|
my_readsig, my_sendsig);
|
||||||
|
|
||||||
|
hntdll = GetModuleHandle ("ntdll.dll");
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
DWORD nb;
|
DWORD nb;
|
||||||
|
|
Loading…
Reference in New Issue