summaryrefslogtreecommitdiffstats
path: root/Modules/mmapmodule.c
diff options
context:
space:
mode:
authorHirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>2009-02-17 13:17:26 (GMT)
committerHirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>2009-02-17 13:17:26 (GMT)
commit17a837e4dba610d87409c3ed532d30aa68502108 (patch)
treec7cf1bb4a0f9bccc355a8abc2a0d14e807248688 /Modules/mmapmodule.c
parent1d0b5cc6dcbabc217242ca5e141c900200ad4c26 (diff)
downloadcpython-17a837e4dba610d87409c3ed532d30aa68502108.zip
cpython-17a837e4dba610d87409c3ed532d30aa68502108.tar.gz
cpython-17a837e4dba610d87409c3ed532d30aa68502108.tar.bz2
Issue #5282: Fixed mmap resize on 32bit windows and unix. When offset > 0,
The file was resized to wrong size.
Diffstat (limited to 'Modules/mmapmodule.c')
-rw-r--r--Modules/mmapmodule.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index df2c058..fad60d1 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -444,7 +444,7 @@ mmap_resize_method(mmap_object *self,
off_lo = (DWORD)(self->offset & 0xFFFFFFFF);
#else
newSizeHigh = 0;
- newSizeLow = (DWORD)new_size;
+ newSizeLow = (DWORD)(self->offset + new_size);
off_hi = 0;
off_lo = (DWORD)self->offset;
#endif
@@ -490,7 +490,7 @@ mmap_resize_method(mmap_object *self,
} else {
void *newmap;
- if (ftruncate(self->fd, new_size) == -1) {
+ if (ftruncate(self->fd, self->offset + new_size) == -1) {
PyErr_SetFromErrno(mmap_module_error);
return NULL;
}