Commit graph

4913 commits

Author SHA1 Message Date
Nick Coghlan
93602e3af7 [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169)
bpo-27286 fixed a problem where BUILD_MAP_UNPACK_WITH_CALL could
be emitted with an incorrect oparg value, causing the eval loop
to access the wrong stack entry when attempting to read the
function name.

The associated magic number change caused significant problems when
attempting to upgrade to 3.5.3 for anyone that relies on pre-cached
bytecode remaining valid across maintenance releases.

This patch restores the ability to import legacy bytecode generated
by 3.5.0, 3.5.1 or 3.5.2, and modifies the eval loop to
avoid any harmful consequences from the potentially malformed legacy
bytecode.

Original import patch by Petr Viktorin, eval loop patch by Serhiy Storchaka,
and tests and integration by Nick Coghlan.
2017-03-08 16:41:01 +10:00
Ned Deily
a2edd3ae40 [3.5] bpo-27593: Get SCM build info from git instead of hg. (#446) (#454) (#455)
* bpo-27593: Get SCM build info from git instead of hg. (#446)

sys.version and the platform module python_build(),
python_branch(), and python_revision() functions now use
git information rather than hg when building from a repo.

Based on original patches by Brett Cannon and Steve Dower.
(cherry picked from commit 5c4b0d063a)

(cherry picked from commit 95c50e5aed)
2017-03-04 01:34:19 -05:00
Berker Peksag
0dadf56737 bpo-29655: Fixed possible reference leaks in import *. (#301) (#349)
Patch by Matthias Bussonnier.

(cherry picked from commit 160edb4357)
2017-02-27 21:25:29 +03:00
Martijn Pieters
bc144f0abf bpo-28598: Support __rmod__ for RHS subclasses of str in % string formatting operations (#94) 2017-02-27 19:07:27 +03:00
Serhiy Storchaka
3a1042567c Issue #26729: Fixed __text_signature__ for sorted().
Patch by Erik Welch.
2017-01-23 12:29:47 +02:00
Victor Stinner
035ba5da3e Issue #29157: Prefer getrandom() over getentropy()
Copy and then adapt Python/random.c from default branch. Difference between 3.5
and default branches:

* Python 3.5 only uses getrandom() in non-blocking mode: flags=GRND_NONBLOCK
* If getrandom() fails with EAGAIN: py_getrandom() immediately fails and
  remembers that getrandom() doesn't work.
* Python 3.5 has no _PyOS_URandomNonblock() function: _PyOS_URandom()
  works in non-blocking mode on Python 3.5
2017-01-09 11:18:53 +01:00
Benjamin Peterson
493ac1bbe0 only include sys/random.h if it seems like it might have something useful (#29057) 2017-01-01 22:29:36 -06:00
Benjamin Peterson
4365833d11 merge 3.4 2017-01-01 22:08:33 -06:00
Benjamin Peterson
b6e2142b0c merge 3.3 2017-01-01 22:07:37 -06:00
Benjamin Peterson
e527dd34bc ring in 2017 for Python 2017-01-01 22:04:13 -06:00
Benjamin Peterson
fb2ae15c67 add a specific configure check for sys/random.h (closes #28932) 2016-12-19 23:54:25 -08:00
Martin Panter
ca3263c50c Issue #25677: Correct syntax error caret for indented blocks.
Based on patch by Michael Layzell.
2016-12-11 00:18:36 +00:00
Serhiy Storchaka
8b58339eb2 Issue #28512: Fixed setting the offset attribute of SyntaxError by
PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject().
2016-12-11 14:39:01 +02:00
Serhiy Storchaka
144f77a981 Issue #28715: Added error checks for PyUnicode_AsUTF8(). 2016-11-20 08:47:21 +02:00
Serhiy Storchaka
f5894dd646 Issue #28701: Replace _PyUnicode_CompareWithId with _PyUnicode_EqualToASCIIId.
The latter function is more readable, faster and doesn't raise exceptions.

Based on patch by Xiang Zhang.
2016-11-16 15:40:39 +02:00
Serhiy Storchaka
f4934ea77d Issue #28701: Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:17:58 +02:00
Ned Deily
7ae4112649 Issue #28676: Prevent missing 'getentropy' declaration warning on macOS.
Patch by Gareth Rees.
2016-11-12 16:35:48 -05:00
Serhiy Storchaka
70b72f0f96 Fixed possible abort in ceval loop if _PyUnicode_FromId() fails.
Every opcode should end with DISPATCH() or goto error.
2016-11-08 23:12:46 +02:00
Ned Deily
da4887a88d Issue #28616: Correct help for sys.version_info releaselevel component.
Patch by Anish Tambe.
2016-11-04 17:03:34 -04:00
Serhiy Storchaka
9e373be1bc Issue #28410: Keep the traceback of original exception in _PyErr_ChainExceptions(). 2016-10-21 16:19:59 +03:00
Serhiy Storchaka
04eb777279 Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception
loss in PyTraceBack_Here().
2016-10-18 13:23:18 +03:00
Serhiy Storchaka
5665301bae Issue #28257: Improved error message when pass a non-mapping as a var-keyword
argument.
2016-10-07 23:32:41 +03:00
Serhiy Storchaka
cf3806026b Issue #24098: Fixed possible crash when AST is changed in process of
compiling it.
2016-10-07 21:51:28 +03:00
Serhiy Storchaka
00a0fc1144 Issue #27942: String constants now interned recursively in tuples and frozensets. 2016-09-30 10:07:26 +03:00
Serhiy Storchaka
208bbd29d3 Silence GCC warning.
The code was correct, but GCC is not enough clever.
2016-09-22 19:59:46 +03:00
Victor Stinner
6d8bc46cc0 Catch EPERM error in py_getrandom()
Issue #27955: Fallback on reading /dev/urandom device when the getrandom()
syscall fails with EPERM, for example when blocked by SECCOMP.
2016-09-20 22:46:02 +02:00
Victor Stinner
af59732102 Cleanup random.c
Issue #27955: modify py_getrnadom() and dev_urandom()

* Add comments from Python 3.7
* PEP 7 style: add {...}
2016-09-20 22:26:18 +02:00
Steve Dower
1ec262be80 Issue #27932: Prevent memory leak in win32_ver(). 2016-09-17 17:25:42 -07:00
Benjamin Peterson
59e5e0dca2 improve type-safe of and prevent double-frees in get_locale_info (#28119) 2016-09-13 22:43:45 -07:00
Raymond Hettinger
262b6793e0 Issue #26020: Fix evaluation order for set literals 2016-09-08 14:40:36 -07:00
Martin Panter
0be894b2f6 Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-09-07 12:03:06 +00:00
Senthil Kumaran
32d374215a [backport to 3.5] - issue26896 - Disambiguate uses of "importer" with "finder". 2016-09-07 00:52:20 -07:00
Raymond Hettinger
f0f1c239e4 Issue 27936: Fix inconsistent round() behavior between float and int 2016-09-03 01:55:11 -07:00
Raymond Hettinger
f0afe77c52 Issue #27909: Fix INCREF for possible NULL value 2016-08-31 08:44:11 -07:00
Raymond Hettinger
7ea386e56e Issue 19504: Change "customise" to "customize" American spelling. 2016-08-25 21:11:50 -07:00
Berker Peksag
4b7b565c58 Issue #27587: Move null pointer check earlier in _PyState_AddModule()
This was found by PVS-Studio:

V595 The 'def' pointer was utilized before it was verified
against nullptr. Check lines: 286, 292. pystate.c 286

Initial patch by Christian Heimes.
2016-08-22 18:05:56 +03:00
Victor Stinner
eec9331b20 Fix SystemError in "raise" statement
Issue #27558: Fix a SystemError in the implementation of "raise" statement.
In a brand new thread, raise a RuntimeError since there is no active
exception to reraise.

Patch written by Xiang Zhang.
2016-08-18 18:13:10 +02:00
Martin Panter
69332c1a64 Fix spelling and grammar in documentation and code comments 2016-08-04 13:07:31 +00:00
Martin Panter
95f53c13ce Issue #16191: Fix up references to renamed variables 2016-07-18 08:23:26 +00:00
Serhiy Storchaka
80ab069f1b Issue #27419: Added temporary workaround for subinterpreters. 2016-07-17 14:15:28 +03:00
Serhiy Storchaka
b3b65e618c Issue #27419: Standard __import__() no longer look up "__import__" in globals
or builtins for importing submodules or "from import".  Fixed handling an
error of non-string package name.
2016-07-17 12:47:17 +03:00
Brett Cannon
7ca63cb7cc Fix regressions introduced by fixes for issue #27083. 2016-07-16 10:44:13 -07:00
Benjamin Peterson
e09ed5419b make too many nested blocks be a SyntaxError instead of a SystemError (closes #27514)
Patch by Ammar Askar.
2016-07-14 22:00:03 -07:00
Serhiy Storchaka
1a2b24f02d Issue #27332: Fixed the type of the first argument of module-level functions
generated by Argument Clinic.  Patch by Petr Viktorin.
2016-07-07 17:35:15 +03:00
Victor Stinner
ec721f3305 py_getrandom(): use long type for the syscall() result
Issue #27278. It should fix a conversion warning.

In practice, the Linux kernel doesn't return more than 32 MB per call to the
getrandom() syscall.
2016-06-16 23:53:47 +02:00
Serhiy Storchaka
694de3bff7 Issue #27301: Fixed incorrect return codes for errors in compile.c. 2016-06-15 20:06:07 +03:00
Victor Stinner
c72828ba33 cleanup random.c
Casting Py_ssize_t to Py_ssize_t is useless.
2016-06-14 16:35:49 +02:00
Victor Stinner
b98a36e8f3 Fix os.urandom() using getrandom() on Linux
Issue #27278: Fix os.urandom() implementation using getrandom() on Linux.
Truncate size to INT_MAX and loop until we collected enough random bytes,
instead of casting a directly Py_ssize_t to int.
2016-06-14 16:31:35 +02:00
Serhiy Storchaka
3c317e76a2 Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling
function with generalized unpacking (PEP 448) and conflicting keyword names
could cause undefined behavior.
2016-06-12 09:22:01 +03:00
Martin Panter
39b1025356 Fix typo and move comment to appropriate condition 2016-06-10 08:07:11 +00:00