Fix crash at process init on 64 bit XP/2003 under WOW64

* init.cc (munge_threadfunc): Don't call NtQueryInformationThread with
	ThreadQuerySetWin32StartAddress info class on XP 64 and Server 2003 64.
	It crashes.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2015-11-12 11:48:30 +01:00
parent 1968c57d9c
commit d03f429727
3 changed files with 26 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2015-11-12 Corinna Vinschen <corinna@vinschen.de>
* init.cc (munge_threadfunc): Don't call NtQueryInformationThread with
ThreadQuerySetWin32StartAddress info class on XP 64 and Server 2003 64.
It crashes.
2015-11-09 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1.

View File

@ -57,9 +57,12 @@ munge_threadfunc ()
{
char *threadfunc = NULL;
NtQueryInformationThread (NtCurrentThread (),
ThreadQuerySetWin32StartAddress,
&threadfunc, sizeof threadfunc, NULL);
if (wincap.wow64_has_secondary_stack ())
threadfunc = ebp[threadfunc_ix[0]];
else
NtQueryInformationThread (NtCurrentThread (),
ThreadQuerySetWin32StartAddress,
&threadfunc, sizeof threadfunc, NULL);
if (!search_for || threadfunc == search_for)
{
search_for = NULL;

View File

@ -0,0 +1,14 @@
What's new:
-----------
What changed:
-------------
Bug Fixes
---------
- The fix for wine introduced in 2.3.0 crashes in 32 bit Cygwin on 64 bit XP
and 64 bit Server 2003 only. This should work now.
Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00187.html