Commit Graph

5951 Commits

Author SHA1 Message Date
Benjamin Peterson e249dcab7a merge 3.2 2012-02-21 11:09:13 -05:00
Benjamin Peterson 69e9727657 ensure no one tries to hash things before the random seed is found 2012-02-21 11:08:50 -05:00
Petri Lehtinen 4fe85abab9 sqlite3: Fix 64-bit integer handling in user functions on 32-bit architectures
Closes #8033.
2012-02-21 13:49:50 +02:00
Georg Brandl 09a7c72cad Merge from 3.1: Issue #13703: add a way to randomize the hash values of basic types (str, bytes, datetime)
in order to make algorithmic complexity attacks on (e.g.) web apps much more complicated.

The environment variable PYTHONHASHSEED and the new command line flag -R control this
behavior.
2012-02-20 21:31:46 +01:00
Georg Brandl 2daf6ae249 Issue #13703: add a way to randomize the hash values of basic types (str, bytes, datetime)
in order to make algorithmic complexity attacks on (e.g.) web apps much more complicated.

The environment variable PYTHONHASHSEED and the new command line flag -R control this
behavior.
2012-02-20 19:54:16 +01:00
Antoine Pitrou 2f5a163dfc Issue #13014: Fix a possible reference leak in SSLSocket.getpeercert(). 2012-02-15 22:25:27 +01:00
Antoine Pitrou f5f1fe0cb5 Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
Patch by Suman Saha.
2012-02-15 02:42:46 +01:00
Petri Lehtinen 4a84f58143 Issue #10811: Fix recursive usage of cursors. Instead of crashing, raise a ProgrammingError now. 2012-02-06 22:04:18 +02:00
Charles-François Natali 6d0d24e359 Issue #13817: After fork(), reinit the ad-hoc TLS implementation earlier to fix
a random deadlock when fork() is called in a multithreaded process in debug
mode, and make PyOS_AfterFork() more robust.
2012-02-02 20:31:42 +01:00
Petri Lehtinen 023fe334bb sqlite3: Handle strings with embedded zeros correctly
Closes #13676.
2012-02-01 22:18:35 +02:00
Gregory P. Smith ab32066e65 Fix zip_import.c's read_directory() to use appropriate types for the values
being read from the header vs the values being used by fseek and ftell
(Py_ssize_t for those) and how they are computed.  Py_ssize_t is used for
actual file offsets so that files greater than 2gigs could be supported.
Updates the Py_BuildValue format string to match (including several existing
wrong 'i's that should have been 'l's).
2012-01-30 15:17:33 -08:00
Antoine Pitrou 1334884ff2 Issue #13848: open() and the FileIO constructor now check for NUL characters in the file name.
Patch by Hynek Schlawack.
2012-01-29 18:36:34 +01:00
Antoine Pitrou 75ff65ef96 Issue #13806: The size check in audioop decompression functions was too strict and could reject valid compressed data.
Patch by Oleg Plakhotnyuk.
2012-01-28 22:01:59 +01:00
Antoine Pitrou 3f366314e8 Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC IV attack countermeasure. 2012-01-27 09:50:45 +01:00
Antoine Pitrou f2bf8a6ac5 Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC IV attack countermeasure. 2012-01-27 09:48:47 +01:00
Meador Inge 65992c1c01 - Issue #13840: Fix ctypes.create_string_buffer exception message and docs. 2012-01-26 08:44:00 -06:00
Benjamin Peterson 7fa5a99b06 merge heads 2012-01-24 09:07:06 -05:00
Antoine Pitrou 5311c1d7ab Issue #13772: In os.symlink() under Windows, do not try to guess the link
target's type (file or directory).  The detection was buggy and made the
call non-atomic (therefore prone to race conditions).
2012-01-24 08:59:28 +01:00
Benjamin Peterson 91eef984fd fix declaration style 2012-01-22 20:04:46 -05:00
Gregory P. Smith 4842efcf97 Fix FreeBSD, NetBSD and OpenBSD behavior of the issue #8052 fix. 2012-01-21 21:01:24 -08:00
Gregory P. Smith e9b7cab1da Another issue #8052 bugfix (related to previous commit).
"oops" while rearranging the #defines.
2012-01-21 15:19:11 -08:00
Gregory P. Smith e3f7848bc5 Bugfix for issue #8052 fix on *BSD variants.
Many lack readdir64, use readdir.  Only use readdir64 on solaris where
it is required to work around a solaris bug.
2012-01-21 15:16:17 -08:00
Gregory P. Smith 8facece99a Fixes issue #8052: The posix subprocess module's close_fds behavior was
suboptimal by closing all possible file descriptors rather than just
the open ones in the child process before exec().

It now closes only the open fds when it is possible to safely determine what
those are.
2012-01-21 14:01:08 -08:00
Gregory P. Smith 12fdca59bb Avoid the compiler warning about the unused return value. 2012-01-21 12:31:25 -08:00
Antoine Pitrou fc1b6f0078 Fix the _io module leaking references when a sub-interpreter is created. 2012-01-18 16:13:56 +01:00
Ezio Melotti acd5f7bceb #13665: s/string/bytes/ in error message. 2012-01-18 05:42:39 +02:00
Antoine Pitrou 2f828f2c88 Test running of code in a sub-interpreter
(prelude to issue #6531).
2012-01-18 00:21:11 +01:00
Charles-François Natali 366999a011 Issue #9975: socket: Fix incorrect use of flowinfo and scope_id. Patch by
Vilmos Nebehaj.
2012-01-02 15:47:29 +01:00
Ross Lagerwall 667d75d059 Don't redefine _GNU_SOURCE if it's already defined. 2011-12-22 09:45:53 +02:00
Ross Lagerwall 031bf95d32 Issue #11006: Don't issue low level warning in subprocess when pipe2() fails. 2011-12-22 09:07:30 +02:00
Victor Stinner bd206e27a4 Handle correctly _Py_fopen() error: don't replace the exception 2011-12-18 21:04:17 +01:00
Victor Stinner e83f899364 Issue #13530: Document os.lseek() result
Patch written by Jérémy Anger.
2011-12-17 23:15:09 +01:00
Victor Stinner 136ea49b39 Issue #10951: Fix a compiler warning in timemodule.c 2011-12-17 22:37:18 +01:00
Victor Stinner 94ba691ed3 main() now displays an error message before exiting if a command line argument
cannot be decoded
2011-12-16 23:48:31 +01:00
Antoine Pitrou c345ce1a69 Issue #10350: Read and save errno before calling a function which might overwrite it.
Original patch by Hallvard B Furuseth.
2011-12-16 12:28:32 +01:00
Charles-François Natali 10db4dec61 Issue #4028: Make multiprocessing build on SunOS. 2011-12-14 18:39:09 +01:00
Alexandre Vassalotti 3bfc65a25b Issue #13505: Make pickling of bytes object compatible with Python 2.
Initial patch by sbt.
2011-12-13 13:08:09 -05:00
Florent Xicluna 0e686cbb7d Fix docstring typo. 2011-12-09 23:41:19 +01:00
Victor Stinner 720f34a3e8 Issue #5905: time.strftime() is now using the locale encoding, instead of
UTF-8, if the wcsftime() function is not available.
2011-12-09 20:19:24 +01:00
Charles-François Natali 6613c18ea2 Issue #13415: Test in configure if unsetenv() has a return value or not. 2011-11-27 12:41:06 +01:00
Benjamin Peterson 06403cff16 decref correct object 2011-11-22 23:57:23 -06:00
Benjamin Peterson 4bb867d3ec plug refleak 2011-11-22 23:12:49 -06:00
Antoine Pitrou 116d6b98bf Issue #13458: Fix a memory leak in the ssl module when decoding a certificate with a subjectAltName.
Patch by Robert Xiao.
2011-11-23 01:39:19 +01:00
Victor Stinner 60b385e813 Issue #13415: os.unsetenv() doesn't ignore errors anymore. 2011-11-22 22:01:28 +01:00
Victor Stinner ab1d16b456 Issue #13093: Fix error handling on PyUnicode_EncodeDecimal()
* Add tests for PyUnicode_EncodeDecimal() and PyUnicode_TransformDecimalToASCII()
 * Remove the unused "e" variable in replace()
2011-11-22 01:45:37 +01:00
Antoine Pitrou 58fcf9f801 Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is
raised when the wrapped raw file is non-blocking and the write would block.
Previous code assumed that the raw write() would raise BlockingIOError, but
RawIOBase.write() is defined to returned None when the call would block.
Patch by sbt.
2011-11-21 20:16:44 +01:00
Florent Xicluna 992d9e081f Fix few typos. 2011-11-11 19:35:42 +01:00
Ezio Melotti 98d2c0aba3 #13379: update Unicode version in unicodedata docstrings and comments. 2011-11-10 09:36:34 +02:00
Ross Lagerwall dcfde5aac9 Issue #13339: Fix compile error in posixmodule.c due to missing semicolon.
Thanks to Robert Xiao.
2011-11-04 07:09:14 +02:00
Victor Stinner 7ab4192e82 Issue #12342: Improve _tkinter error message on unencodable character 2011-11-04 00:36:46 +01:00
Victor Stinner b3bc7e764d Issue #10570: curses.putp() is now expecting a byte string, instead of a
Unicode string.

This is an incompatible change, but putp() is used to emit terminfo commands,
which are bytes strings, not Unicode strings.
2011-11-03 20:35:40 +01:00
Victor Stinner 2662133a05 Issue #10570: curses.tigetstr() is now expecting a byte string, instead of a
Unicode string.

This is an incompatible change, but the previous behaviour was completly wrong.
2011-11-02 23:45:29 +01:00
Florent Xicluna 91d5193b3a Closes #2892: preserve iterparse events in case of SyntaxError. 2011-11-01 23:31:09 +01:00
Florent Xicluna c45fb25fba Issue #13255: wrong docstrings in array module. 2011-10-24 13:14:55 +02:00
Senthil Kumaran 202a3c422b 3.2 - Fix Issue 12604 - Use a proper no-op macro expansion for VTRACE macro in _sre.c 2011-10-20 02:15:36 +08:00
Victor Stinner 8d91d454d5 Issue #10653: Fix time.strftime() on Windows, check for invalid format strings 2011-10-16 23:45:39 +02:00
Victor Stinner c1f32ca0ad Issue #10653: On Windows, use strftime() instead of wcsftime() because
wcsftime() doesn't format time zone correctly.
2011-10-14 02:36:13 +02:00
Nadeem Vawda d41a98bdd9 Issue #13159: Replace FileIO's quadratic-time buffer growth algorithm with a linear-time one.
Also fix the bz2 module, whose classes used the same algorithm.
2011-10-13 13:34:16 +02:00
Charles-François Natali 42c28cdd1d Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
would be finalized after the reference to its underlying BufferedRWPair's
writer got cleared by the GC.
2011-10-05 19:53:43 +02:00
Antoine Pitrou ed8ba14441 Remove all other uses of the C tolower()/toupper() which could break with a Turkish locale. 2011-10-04 13:50:21 +02:00
Antoine Pitrou 1665d2c75f Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale.
Reported and diagnosed by Thomas Kluyver.
2011-10-04 13:35:28 +02:00
Antoine Pitrou 1e44fecc52 Issue #13087: BufferedReader.seek() now always raises UnsupportedOperation
if the underlying raw stream is unseekable, even if the seek could be
satisfied using the internal buffer.  Patch by John O'Connor.
2011-10-04 12:26:20 +02:00
Antoine Pitrou ffd41d9f10 Issue #7689: Allow pickling of dynamically created classes when their
metaclass is registered with copyreg.  Patch by Nicolas M. Thiéry and
Craig Citro.
2011-10-04 09:23:04 +02:00
Meador Inge 1efb33a682 Issue #12881: ctypes: Fix segfault with large structure field names. 2011-10-03 21:44:22 -05:00
Antoine Pitrou d8c347a8de Issue #13034: When decoding some SSL certificates, the subjectAltName extension could be unreported. 2011-10-01 19:20:25 +02:00
Charles-François Natali 5a4a109694 Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by Thomas
Jarosch.
2011-09-29 19:46:37 +02:00
Meador Inge b86ecf4bd1 Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype.
Thanks to Suman Saha for finding the bug and providing a patch.
2011-09-27 20:45:30 -05:00
Mark Dickinson b2f6bc72a2 Issue #12973: Fix itertools bug caused by signed integer overflow. Thanks Stefan Krah. 2011-09-24 08:56:09 +01:00
Benjamin Peterson adde86d0e3 fix compiler compliant about \0 not being an opcode 2011-09-23 13:41:41 -04:00
Jesus Cea 4507e6456e Close #13022: _multiprocessing.recvfd() doesn't check that file descriptor was actually received 2011-09-21 03:53:25 +02:00
Amaury Forgeot d'Arc bbe46d63ee Issue #12483: ctypes: Fix a crash when the destruction of a callback
object triggers the garbage collector.
2011-09-12 21:03:36 +02:00
Jesus Cea ab7060e502 Close #12950: multiprocessing "test_fd_transfer" fails under OpenIndiana 2011-09-10 04:04:09 +02:00
Benjamin Peterson f22913b8c3 cast to getter 2011-09-06 07:55:34 -04:00
Benjamin Peterson f6f3a35447 add a __dict__ descr for IOBase (closes #12878) 2011-09-03 09:26:20 -04:00
Amaury Forgeot d'Arc 02dd539dbb Issue #12764: Fix a crash in ctypes when the name of a Structure field is not
a string.
2011-09-02 20:39:40 +02:00
Amaury Forgeot d'Arc faecc38809 Issue #11241: subclasses of ctypes.Array can now be subclassed. 2011-08-30 22:02:51 +02:00
Amaury Forgeot d'Arc 326e189410 Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to
some functions like file.write().
2011-08-30 21:40:20 +02:00
Antoine Pitrou 55549ec476 Issue #12847: Fix a crash with negative PUT and LONG_BINPUT arguments in
the C pickle implementation.
2011-08-30 00:27:10 +02:00
Antoine Pitrou 82be19f889 Issue #11564: Avoid crashes when trying to pickle huge objects or containers
(more than 2**31 items).  Instead, in most cases, an OverflowError is raised.
2011-08-29 23:09:33 +02:00
Charles-François Natali aa26b27503 Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is
greater than FD_SETSIZE.
2011-08-28 17:51:43 +02:00
Nadeem Vawda 524148ad7a Issue #12839: Fix crash in zlib module due to version mismatch.
If the version of zlib used to compile the zlib module is incompatible
with the one that is actually linked in, then calls into zlib will fail.
This can leave attributes of the z_stream uninitialized, so we must take
care to avoid segfaulting by trying to use an invalid pointer.

Fix by Richard M. Tew.
2011-08-28 11:26:46 +02:00
Antoine Pitrou bcb39d4846 Issue #11657: Fix sending file descriptors over 255 over a multiprocessing Pipe.
Also added some tests.
2011-08-23 19:46:22 +02:00
Antoine Pitrou e05565ec5a Issue #12213: Fix a buffering bug with interleaved reads and writes that
could appear on BufferedRandom streams.
2011-08-20 14:39:23 +02:00
Ezio Melotti 388c945e97 #12725: fix working. Patch by Ben Hayden. 2011-08-14 08:28:57 +03:00
Antoine Pitrou f6c7a8595e Issue #12687: Fix a possible buffering bug when unpickling text mode (protocol 0, mostly) pickles. 2011-08-11 21:04:02 +02:00
Benjamin Peterson fc9bbd1692 dosmodule is, thankfully, no more 2011-08-04 11:07:42 -05:00
Ross Lagerwall d98646e430 Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is
given as a low fd, it gets overwritten.
2011-07-27 07:16:31 +02:00
Antoine Pitrou e96ec68101 Issue #12591: Allow io.TextIOWrapper to work with raw IO objects (without
a read1() method), and add an undocumented *write_through* parameter to
mandate unbuffered writes.
2011-07-23 21:46:35 +02:00
Barry Warsaw d460a76e9e - Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper
signature.  Without this, architectures where sizeof void* != sizeof int are
  broken.  Patch given by Hallvard B Furuseth.
2011-07-19 18:28:30 -04:00
Antoine Pitrou 8391cf4e1d Issue #11321: Fix a crash with multiple imports of the _pickle module when
embedding Python.  Patch by Andreas Stührk.
2011-07-15 21:01:21 +02:00
Antoine Pitrou cb4ae815b5 Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a TextIOWrapper to a huge value, not TypeError. 2011-07-13 21:07:49 +02:00
Antoine Pitrou b9ac25d1c3 Issue #12440: When testing whether some bits in SSLContext.options can be
reset, check the version of the OpenSSL headers Python was compiled against,
rather than the runtime version of the OpenSSL library.
2011-07-08 18:47:06 +02:00
Victor Stinner c655a726db Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows. 2011-07-05 11:31:49 +02:00
Senthil Kumaran 7d80bd1909 Fix closes issue 11568 - update select.epoll.register docstring with mention of correct behavior. 2011-06-26 23:48:23 -07:00
Ross Lagerwall dbfb9b89db Issue 12404: Remove C89 incompatible code from mmap module.
Patch by Akira Kitada.
2011-06-25 10:02:37 +02:00
Victor Stinner 26de69dff8 posixmodule.c: fix function name in argument parsing
Fix os.fchown() and os.open()

Remove also trailing spaces and replace tabs by spaces.
2011-06-17 15:15:38 +02:00
Brian Curtin c8be84077b Correct completely broken os.stat behavior on Windows XP.
After 1a3e8db28d49, Windows XP could not os.stat at all due to raising
immediately when GetFinalPathNameByHandle wasn't available (pre-Vista).
The proper behavior in that situation is to just not attempt a traversal
rather than outright rejecting.

This change additionally handles a failed malloc by setting the error code
and returning false.

Patch by Hirokazu Yamamoto.
2011-06-14 09:52:50 -05:00
Brian Curtin a87d586fd6 branch merge? 2011-06-13 16:10:32 -05:00
Brian Curtin d25aef55c8 Fix #12084. os.stat on Windows wasn't working properly with relative symlinks.
Use of DeviceIoControl to obtain the symlink path via the reparse tag was
removed. The code now uses GetFinalPathNameByHandle in the case of a
symbolic link and works properly given the added test which creates a symbolic
link and calls os.stat on it from multiple locations.

Victor Stinner also noticed an issue with os.lstat following the os.stat
code path when being passed bytes. The posix_lstat function was adjusted to
properly hook up win32_lstat instead of the previous STAT macro (win32_stat).
2011-06-13 15:16:04 -05:00
Brian Curtin 95d028fd18 Correction to 88e318166eaf - Issue #11583
Rather than wrapping the C _isdir function in a Python function,
just import the C _isdir function directly. Additionally, add in the
docstring which was left out.
2011-06-09 09:10:38 -05:00