diff -r e831a98b3f43 Python/thread_pthread.h --- a/Python/thread_pthread.h Sat Aug 16 01:03:39 2014 +0200 +++ b/Python/thread_pthread.h Sat Aug 16 14:07:32 2014 +0200 @@ -608,7 +608,14 @@ 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) { + /* integer overflow */ + pthread_key_delete(key); + return -1; + } + return (int)key; } void