summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dcrt0.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r--winsup/cygwin/dcrt0.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 023f7682c..38b4b67f3 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -607,9 +607,10 @@ get_cygwin_startup_info ()
This seems to be a bug in Vista's WOW64, which apparently copies the
lpReserved2 datastructure not using the cbReserved2 size information,
but using the information given in the first DWORD within lpReserved2
- instead. Funny enough, 32 bit Vista doesn't care if zero[0] is 0 or a
- non-0 count value, while older versions of Windows might crash if
- zero[0] is set to a non-zero value, as observed at least on XP 64.
+ instead. 32 bit Windows and former WOW64 don't care if zero[0] is 0
+ or a sensible non-0 count value. However, it's not clear if a non-0
+ count doesn't result in trying to evaluate the content, so we do this
+ really only for Vista 64 for now.
exec/spawn as well as fork write an appropriate value into zero[0] now,
depending on the wincap.needs_count_in_si_lpres2 flag. The value is