Commit daca3d7e authored by Victor Stinner's avatar Victor Stinner

Issue #22206: Using pthread, PyThread_create_key() now sets errno to ENOMEM and

returns -1 (error) on integer overflow.
parent 7270b7f1
...@@ -10,6 +10,9 @@ Release date: TBA ...@@ -10,6 +10,9 @@ Release date: TBA
Core and Builtins 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 - Issue #20184: Argument Clinic based signature introspection added for
30 of the builtin functions. 30 of the builtin functions.
......
...@@ -608,7 +608,15 @@ PyThread_create_key(void) ...@@ -608,7 +608,15 @@ PyThread_create_key(void)
{ {
pthread_key_t key; pthread_key_t key;
int fail = pthread_key_create(&key, NULL); 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 void
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment