diff -r 020ebe0be33e Modules/mmapmodule.c --- a/Modules/mmapmodule.c Sat Apr 23 17:56:06 2011 +0200 +++ b/Modules/mmapmodule.c Sun Apr 24 10:33:14 2011 -0300 @@ -642,9 +642,9 @@ return NULL; } else { /* bounds check the values */ - if (cnt < 0 || (cnt + dest) < cnt || (cnt + src) < cnt || - src < 0 || src > self->size || (src + cnt) > self->size || - dest < 0 || dest > self->size || (dest + cnt) > self->size) { + if ((PY_SIZE_MAX - dest) < cnt || (PY_SIZE_MAX - src) < cnt || + src > self->size || (src + cnt) > self->size || + dest > self->size || (dest + cnt) > self->size) { PyErr_SetString(PyExc_ValueError, "source, destination, or count out of range"); return NULL;