diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2019-03-03 12:59:13 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2019-03-03 12:59:13 +0300 |
commit | 38dde5f4c4c2e33dfe6dfb9d1bc593d13d85a290 (patch) | |
tree | a4c9490581d4dfa3149a2f2a7a124d080af30207 | |
parent | 4abac6219346f3b3c06401d8100593c742b094b3 (diff) |
Cygwin: fork: fix child process permissions, take 3
Per MSDN VirtualQueryEx requires PROCESS_QUERY_INFORMATION.
Testing showed that PROCESS_QUERY_LIMITED_INFORMATION is sufficient
since Windows 8.1. The assumption that Windows 8 is the same as
Windows 8 was not correct, it requires PROCESS_QUERY_INFORMATION
as well.
Fix that by splitting the Windows 8 wincaps into one for Windows 8
and one for Windows 8.1. Set needs_query_information for Windows 8.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r-- | winsup/cygwin/wincap.cc | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc index 78cc41133..5bc9c3778 100644 --- a/winsup/cygwin/wincap.cc +++ b/winsup/cygwin/wincap.cc @@ -73,6 +73,31 @@ wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = { { is_server:false, needs_count_in_si_lpres2:false, + needs_query_information:true, + has_gaa_largeaddress_bug:false, + has_broken_alloc_console:true, + has_console_logon_sid:true, + has_precise_system_time:true, + has_microsoft_accounts:true, + has_processor_groups:true, + has_broken_prefetchvm:false, + has_new_pebteb_region:false, + has_broken_whoami:false, + has_unprivileged_createsymlink:false, + has_unbiased_interrupt_time:true, + has_precise_interrupt_time:false, + has_posix_unlink_semantics:false, + has_case_sensitive_dirs:false, + has_posix_rename_semantics:false, + no_msv1_0_s4u_logon_in_wow64:false, + }, +}; + +wincaps wincap_8_1 __attribute__((section (".cygwin_dll_common"), shared)) = { + def_guard_pages:2, + { + is_server:false, + needs_count_in_si_lpres2:false, needs_query_information:false, has_gaa_largeaddress_bug:false, has_broken_alloc_console:true, @@ -273,9 +298,11 @@ wincapc::init () caps = &wincap_7; break; case 2: - case 3: caps = &wincap_8; break; + case 3: + caps = &wincap_8_1; + break; default: caps = &wincap_10_1507; break; |