aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Franke <christian.franke@t-online.de>2025-03-08 14:05:20 +0100
committerChristian Franke <christian.franke@t-online.de>2025-03-08 14:07:39 +0100
commit0275a36723dd4552a26880e4ac8ba9b6dc41b17f (patch)
tree585611f1480068877ee1e1f26456290ff39ab232
parenta3863bfeb73f3c3832038685498c7c4148a06890 (diff)
downloadnewlib-0275a36723dd4552a26880e4ac8ba9b6dc41b17f.zip
newlib-0275a36723dd4552a26880e4ac8ba9b6dc41b17f.tar.gz
newlib-0275a36723dd4552a26880e4ac8ba9b6dc41b17f.tar.bz2
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 <christian.franke@t-online.de>
-rw-r--r--winsup/cygwin/release/3.6.02
-rw-r--r--winsup/cygwin/sched.cc3
2 files changed, 4 insertions, 1 deletions
diff --git a/winsup/cygwin/release/3.6.0 b/winsup/cygwin/release/3.6.0
index 8225f2c..4c953a8 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 86941b2..2f4fbc3 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))
{