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

returns -1 (error) on integer overflow.
This commit is contained in:
Victor Stinner 2014-08-17 22:11:06 +02:00
parent 7270b7f1aa
commit daca3d7e9b
2 changed files with 12 additions and 1 deletions

View file

@ -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.

View file

@ -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