diff options
author | Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp> | 2009-02-17 13:17:26 (GMT) |
---|---|---|
committer | Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp> | 2009-02-17 13:17:26 (GMT) |
commit | 17a837e4dba610d87409c3ed532d30aa68502108 (patch) | |
tree | c7cf1bb4a0f9bccc355a8abc2a0d14e807248688 /Modules/mmapmodule.c | |
parent | 1d0b5cc6dcbabc217242ca5e141c900200ad4c26 (diff) | |
download | cpython-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.c | 4 |
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; } |