SF #665913, Fix mmap module core dump with unix
Closing an mmap'ed file (calling munmap) twice on Solaris caused a core dump.
except OSError:
pass
+ # make sure a double close doesn't crash on Solaris (Bug# 665913)
+ f = open(TESTFN, 'w+')
+
+ try: # unlink TESTFN no matter what
+ f.write(2**24 * 'a') # Arbitrary character
+ f.close()
+
+ f = open(TESTFN)
+ mf = mmap.mmap(f.fileno(), 2**24, access=mmap.ACCESS_READ)
+ mf.close()
+ mf.close()
+ f.close()
+
+ finally:
+ try:
+ os.unlink(TESTFN)
+ except OSError:
+ pass
print ' Test passed'
- New codec for Ukrainian Cyrillic.
+- SF #665913: fix crash on Solaris when closing an mmap'ed file which
+ was already closed.
What's New in Python 2.2.2 (final) ?
Release date: 14-Oct-2002
#endif /* MS_WIN32 */
#ifdef UNIX
- munmap(self->data, self->size);
- self->data = NULL;
+ if (self->data != NULL) {
+ munmap(self->data, self->size);
+ self->data = NULL;
+ }
#endif
Py_INCREF (Py_None);