diff -r 919a3487fb00 Modules/_pickle.c --- a/Modules/_pickle.c Sat Sep 26 17:47:02 2015 -0700 +++ b/Modules/_pickle.c Sun Sep 27 09:29:47 2015 +0300 @@ -1193,13 +1193,7 @@ static Py_ssize_t { Py_ssize_t num_read; - if (self->next_read_idx > PY_SSIZE_T_MAX - n) { - PickleState *st = _Pickle_GetGlobalState(); - PyErr_SetString(st->UnpicklingError, - "read would overflow (invalid bytecode)"); - return -1; - } - if (self->next_read_idx + n <= self->input_len) { + if ((size_t)self->next_read_idx + (size_t)n <= (size_t)self->input_len) { *s = self->input_buffer + self->next_read_idx; self->next_read_idx += n; return n;