- CHECK_VALID() was checking the wrong value for a closed fd
- fseek(&_iob[fileno], ...) doesn't work for fileno >= 20
#ifdef MS_WINDOWS
#define CHECK_VALID(err) \
do { \
- if (!self->map_handle) { \
+ if (self->map_handle == INVALID_HANDLE_VALUE) { \
PyErr_SetString (PyExc_ValueError, "mmap closed or invalid"); \
return err; \
} \
return NULL;
}
/* Win9x appears to need us seeked to zero */
- fseek(&_iob[fileno], 0, SEEK_SET);
+ lseek(fileno, 0, SEEK_SET);
}
m_obj = PyObject_New (mmap_object, &mmap_object_type);