Gregory P. Smith [Sun, 11 Nov 2012 09:38:18 +0000 (01:38 -0800)]
Fixes issue #16140: The subprocess module no longer double closes its
child subprocess.PIPE parent file descriptors on child error prior to
exec().
This would lead to race conditions in multithreaded programs where
another thread opened a file reusing the fd which was then closed out
from beneath it by the errant second close.
Gregory P. Smith [Sun, 11 Nov 2012 09:37:02 +0000 (01:37 -0800)]
Fixes issue #16140: The subprocess module no longer double closes its
child subprocess.PIPE parent file descriptors on child error prior to
exec().
This would lead to race conditions in multithreaded programs where
another thread opened a file reusing the fd which was then closed out
from beneath it by the errant second close.
Gregory P. Smith [Sun, 11 Nov 2012 08:04:52 +0000 (00:04 -0800)]
Remove the subprocess "bad exception data" warning (formerly a print!)
all together and just include the repr of the data in the exception
itself instead of the useless string "Unknown".
This code path is unlikely to even be possible to take given the
nature of the pipe it gets subprocess data from.
Gregory P. Smith [Sun, 11 Nov 2012 08:04:13 +0000 (00:04 -0800)]
Remove the subprocess "bad exception data" warning (formerly a print!)
all together and just include the repr of the data in the exception
itself instead of the useless string "Unknown".
This code path is unlikely to even be possible to take given the
nature of the pipe it gets subprocess data from.
Gregory P. Smith [Sun, 11 Nov 2012 07:33:56 +0000 (23:33 -0800)]
Rename a local variable for readability and change a "this can't
happen" print() call into a RuntimeWarning as it should've been in the
first place. Because nothing should ever cause unexpected stdout output.
Gregory P. Smith [Sun, 11 Nov 2012 07:33:17 +0000 (23:33 -0800)]
Rename a local variable for readability and change a "this can't
happen" print() call into a RuntimeWarning as it should've been in the
first place. Because nothing should ever cause unexpected stdout output.
Nadeem Vawda [Sun, 11 Nov 2012 01:21:22 +0000 (02:21 +0100)]
Issue #16350, part 2: Set unused_data (and unconsumed_tail) correctly in decompressobj().flush().
Additionally, fix a bug where a MemoryError in allocating a bytes object could
leave the decompressor object in an invalid state (with its unconsumed_tail
member being NULL).
Nadeem Vawda [Sun, 11 Nov 2012 01:14:36 +0000 (02:14 +0100)]
Issue #16350, part 2: Set unused_data (and unconsumed_tail) correctly in decompressobj().flush().
Additionally, fix a bug where a MemoryError in allocating a bytes object could
leave the decompressor object in an invalid state (with its unconsumed_tail
member being NULL).
Gregory P. Smith [Sat, 10 Nov 2012 23:12:55 +0000 (15:12 -0800)]
Fix test_urllib broken by my previous commits. The assumptions it was
testing were added as part of the issue10050 change that caused the
wrong behavior in the first place. now all test cases agree on the
behavior.
Gregory P. Smith [Sat, 10 Nov 2012 21:43:44 +0000 (13:43 -0800)]
Fixes issue #16409: The reporthook callback made by the legacy
urllib.request.urlretrieve API now properly supplies a constant
non-zero block_size as it did in Python 3.2 and 2.7. This matches the
behavior of urllib.request.URLopener.retrieve.
Ezio Melotti [Sun, 4 Nov 2012 22:06:32 +0000 (00:06 +0200)]
#5057: the peepholer no longer optimizes subscription on unicode literals (e.g. u"foo"[0]) in order to produce compatible pyc files between narrow and wide builds.
Ezio Melotti [Sun, 4 Nov 2012 21:21:38 +0000 (23:21 +0200)]
#8271: the utf-8 decoder now outputs the correct number of U+FFFD characters when used with the "replace" error handler on invalid utf-8 sequences. Patch by Serhiy Storchaka, tests by Ezio Melotti.
Nick Coghlan [Sun, 4 Nov 2012 13:14:34 +0000 (23:14 +1000)]
Issue #5765: Apply a hard recursion limit in the compiler
Previously, excessive nesting in expressions would blow the
stack and segfault the interpreter. Now, a hard limit based
on the configured recursion limit and a hardcoded scaling
factor is applied.