From 38dde5f4c4c2e33dfe6dfb9d1bc593d13d85a290 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Sun, 3 Mar 2019 10:59:13 +0100 Subject: 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 --- winsup/cygwin/wincap.cc | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) 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 @@ -69,6 +69,31 @@ wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = { }; wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = { + def_guard_pages:2, + { + 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, @@ -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; -- cgit v1.2.3