* dcrt0.cc (get_cygwin_startup_info): Change zeros to DWORD array.
Expect first DWORD in child_info struct being set to non-zero if wincap.needs_count_in_si_lpres2 is set. Add comment to explain why. * fork.cc (frok::parent): Set ch.zero[0] to a sensible count value if wincap.needs_count_in_si_lpres2 is set. * spawn.cc (spawn_guts): Ditto. Add filler bytes after ch on stack to accomodate needs_count_in_si_lpres2. * wincap.h: Define needs_count_in_si_lpres2 throughout. * wincap.cc: Ditto.
This commit is contained in:
@@ -70,6 +70,7 @@ static NO_COPY wincaps wincap_unknown = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_95 = {
|
||||
@@ -131,6 +132,7 @@ static NO_COPY wincaps wincap_95 = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_95osr2 = {
|
||||
@@ -192,6 +194,7 @@ static NO_COPY wincaps wincap_95osr2 = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_98 = {
|
||||
@@ -253,6 +256,7 @@ static NO_COPY wincaps wincap_98 = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_98se = {
|
||||
@@ -314,6 +318,7 @@ static NO_COPY wincaps wincap_98se = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_me = {
|
||||
@@ -375,6 +380,7 @@ static NO_COPY wincaps wincap_me = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_nt3 = {
|
||||
@@ -436,6 +442,7 @@ static NO_COPY wincaps wincap_nt3 = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_nt4 = {
|
||||
@@ -497,6 +504,7 @@ static NO_COPY wincaps wincap_nt4 = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_nt4sp4 = {
|
||||
@@ -558,6 +566,7 @@ static NO_COPY wincaps wincap_nt4sp4 = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_2000 = {
|
||||
@@ -619,6 +628,7 @@ static NO_COPY wincaps wincap_2000 = {
|
||||
has_buggy_restart_scan:true,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_xp = {
|
||||
@@ -680,6 +690,7 @@ static NO_COPY wincaps wincap_xp = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_2003 = {
|
||||
@@ -741,6 +752,7 @@ static NO_COPY wincaps wincap_2003 = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:false,
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_vista = {
|
||||
@@ -802,6 +814,7 @@ static NO_COPY wincaps wincap_vista = {
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:true,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
needs_count_in_si_lpres2:true,
|
||||
};
|
||||
|
||||
wincapc wincap __attribute__((section (".cygwin_dll_common"), shared));
|
||||
|
Reference in New Issue
Block a user