https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=0275a36723dd4552a26880e4ac8ba9b6dc41b17f

commit 0275a36723dd4552a26880e4ac8ba9b6dc41b17f
Author: Christian Franke <[email protected]>
Date:   Sat Mar 8 14:05:20 2025 +0100

    Cygwin: sched_setaffinity: fix EACCES if pid of other process is used
    
    GetProcessGroupAffinity() requires PROCESS_QUERY_LIMITED_INFORMATION.
    
    Fixes: 641ecb07533e ("Cygwin: Implement sched_[gs]etaffinity()")
    Signed-off-by: Christian Franke <[email protected]>

Diff:
---
 winsup/cygwin/release/3.6.0 | 2 ++
 winsup/cygwin/sched.cc      | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/release/3.6.0 b/winsup/cygwin/release/3.6.0
index 8225f2ccc..4c953a84d 100644
--- a/winsup/cygwin/release/3.6.0
+++ b/winsup/cygwin/release/3.6.0
@@ -126,3 +126,5 @@ Fixes:
 
 - Fix 'lost connection' error in scp.
   Addresses: https://cygwin.com/pipermail/cygwin/2025-January/257143.html
+
+- Fix EACCES error of sched_setaffinity(2) if pid of other process is used.
diff --git a/winsup/cygwin/sched.cc b/winsup/cygwin/sched.cc
index 86941b2ac..2f4fbc31a 100644
--- a/winsup/cygwin/sched.cc
+++ b/winsup/cygwin/sched.cc
@@ -661,7 +661,8 @@ sched_setaffinity (pid_t pid, size_t sizeof_set, const 
cpu_set_t *set)
   if (p)
     {
       process = pid && pid != myself->pid ?
-               OpenProcess (PROCESS_SET_INFORMATION, FALSE,
+               OpenProcess (PROCESS_SET_INFORMATION |
+                            PROCESS_QUERY_LIMITED_INFORMATION, FALSE,
                             p->dwProcessId) : GetCurrentProcess ();
       if (!GetProcessGroupAffinity (process, &groupcount, grouparray))
        {

Reply via email to