Issue #22206: Using pthread, PyThread_create_key() now sets errno to ENOMEM and
returns -1 (error) on integer overflow.
This commit is contained in:
parent
7270b7f1aa
commit
daca3d7e9b
|
@ -10,6 +10,9 @@ Release date: TBA
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #22206: Using pthread, PyThread_create_key() now sets errno to ENOMEM
|
||||
and returns -1 (error) on integer overflow.
|
||||
|
||||
- Issue #20184: Argument Clinic based signature introspection added for
|
||||
30 of the builtin functions.
|
||||
|
||||
|
|
|
@ -608,7 +608,15 @@ PyThread_create_key(void)
|
|||
{
|
||||
pthread_key_t key;
|
||||
int fail = pthread_key_create(&key, NULL);
|
||||
return fail ? -1 : key;
|
||||
if (fail)
|
||||
return -1;
|
||||
if (key > INT_MAX) {
|
||||
/* Issue #22206: handle integer overflow */
|
||||
pthread_key_delete(key);
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
return (int)key;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue