bpo-41839: Fix error checking in sched_get_priority_ functions (GH-22374)

This commit is contained in:
Jakub Kulík 2025-08-27 19:41:14 +02:00 committed by GitHub
parent 56eb6b64a0
commit bbcb75c986
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 5 deletions

View file

@ -0,0 +1,2 @@
Allow negative priority values from :func:`os.sched_get_priority_min` and
:func:`os.sched_get_priority_max` functions.

View file

@ -8211,10 +8211,10 @@ static PyObject *
os_sched_get_priority_max_impl(PyObject *module, int policy)
/*[clinic end generated code: output=9e465c6e43130521 input=2097b7998eca6874]*/
{
int max;
max = sched_get_priority_max(policy);
if (max < 0)
/* make sure that errno is cleared before the call */
errno = 0;
int max = sched_get_priority_max(policy);
if (max == -1 && errno)
return posix_error();
return PyLong_FromLong(max);
}
@ -8232,8 +8232,10 @@ static PyObject *
os_sched_get_priority_min_impl(PyObject *module, int policy)
/*[clinic end generated code: output=7595c1138cc47a6d input=21bc8fa0d70983bf]*/
{
/* make sure that errno is cleared before the call */
errno = 0;
int min = sched_get_priority_min(policy);
if (min < 0)
if (min == -1 && errno)
return posix_error();
return PyLong_FromLong(min);
}