Commit Graph

3359 Commits

Author SHA1 Message Date
Tony Flury 09ba83330b [2.7] bpo-33006 - Correct filter doc string to clarify 2nd argument can be iterable (GH-6015)
https://bugs.python.org/issue33006
2019-05-28 18:36:04 -07:00
Inada Naoki 4e8e8aabc6
bpo-30134: fix BytesWarning doc, docstring and message (GH-12739) 2019-04-09 21:49:49 +09:00
Victor Stinner b14057877f
bpo-36262: Fix _Py_dg_strtod() memory leak (goto undfl) (GH-12276) (GH-12332)
Fix an unlikely memory leak on conversion from string to float in the
function _Py_dg_strtod() used by float(str), complex(str),
pickle.load(), marshal.load(), etc.

Fix an unlikely memory leak in _Py_dg_strtod() on "undfl:" label:
rewrite memory management in this function to always release all
memory before exiting the function. Initialize variables to NULL, and
set them to NULL after calling Bfree() at the "cont:" label.

Note: Bfree(NULL) is well defined: it does nothing.

(cherry picked from commit 9776b0636a)
2019-03-14 17:19:52 +01:00
Benjamin Peterson 5a89c71580
[2.7] Bump copyright years to 2019. (GH-11408)
(cherry picked from commit 9a69ae8a78)
2019-01-02 08:43:32 -08:00
Serhiy Storchaka 89b5ea297d
[2.7] bpo-35441: Remove dead and buggy code related to PyList_SetItem(). (GH-11033) (GH-11234)
In _localemodule.c and selectmodule.c, remove dead code that would
cause double decrefs if run.

In addition, replace PyList_SetItem() with PyList_SET_ITEM() in cases
where a new list is populated and there is no possibility of an error.

In addition, check if the list changed size in the loop in array_array_fromlist().
(cherry picked from commit 99d56b5356)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-12-19 17:11:02 +02:00
Victor Stinner 1fd93ff18c
ceval.c: mark debug 'filename' variable as unused (GH-11074)
Use GCC __attribute__((unused)) to mark the debug variable 'filename'
as unused in Python/ceval.c.
2018-12-10 13:53:38 +01:00
Victor Stinner bc9f53f69e
bpo-33015: Use malloc() in PyThread_start_new_thread() (GH-10829)
The pthread implementation of PyThread_start_new_thread() now uses
malloc/free rather than PyMem_Malloc/PyMem_Free, since the latters
are not thread-safe.
2018-11-30 18:08:02 +01:00
Victor Stinner 8f83c2fb19
bpo-33015: Fix UB in pthread PyThread_start_new_thread (GH-6008) (GH-10823)
Fix an undefined behaviour in the pthread implementation of
PyThread_start_new_thread(): add a function wrapper to always return
NULL.

Add pythread_callback struct and pythread_wrapper() to thread_pthread.h.

(cherry picked from commit 9eea6eaf23)
2018-11-30 17:04:35 +01:00
Miss Islington (bot) e45fa7393b
Add a missed PyErr_NoMemory() in symtable_new(). (GH-10576)
This missed PyErr_NoMemory() could cause a SystemError when calling
_symtable.symtable().
(cherry picked from commit ad65f15581)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-11-16 08:32:07 -08:00
Serhiy Storchaka 3e3e1a27f7
[2.7] bpo-35133: Fix mistakes when concatenate string literals on different lines. (GH-10284) (GH-10335) (GH-10336)
Two kind of mistakes:

1. Missed space. After concatenating there is no space between words.

2. Missed comma. Causes unintentional concatenating in a list of strings.
(cherry picked from commit 34fd4c2019)
(cherry picked from commit 7054e5c80b)
2018-11-05 18:16:26 +02:00
Victor Stinner 911231e708
Drop confusing commented out code in pystrtod.c (GH-6072) (GH-9588)
Fix the following warning:

Python/pystrtod.c: In function 'format_float_short':
Python/pystrtod.c:1007:13: warning: 'strncpy' output truncated before terminating nul copying 3 bytes from a string of the same length [-Wstringop-truncation]
             strncpy(p, "ERR", 3);

(cherry picked from commit 9fb8415759)
2018-09-26 08:18:23 -07:00
tzickel f64c813de8 bpo-25083: Python can sometimes create incorrect .pyc files (GH-8449)
Python 2 never checked for I/O error when reading .py files and
thus could mistake an I/O error for EOF and create incorrect .pyc
files.
This adds an check for this and aborts on an error.
2018-09-10 11:46:14 -07:00
Benjamin Peterson 67dafd5c20
[2.7] Issue GH-18560: Fix potential NULL pointer dereference in sum(). (GH-8892)
(cherry picked from commit 704e2d374f)

Co-authored-by: Christian Heimes <christian@cheimes.de>
2018-08-23 22:28:39 -07:00
Miss Islington (bot) 45ee452751
closes bpo-34474: Python/bltinmodule.c: Add missing NULL check in builtin_sum_impl() (GH-8872)
Reported by Svace static analyzer.
(cherry picked from commit 2b824b2538)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
2018-08-24 01:13:19 -04:00
Alexey Izbyshev 5223ce2131 [2.7] bpo-34457: Python/ast.c: Add missing NULL check to alias_for_import_name(). (GH-8852) (GH-8858)
Reported by Svace static analyzer.
(cherry picked from commit 28853a249b)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
2018-08-22 14:46:51 +03:00
Serhiy Storchaka 48c8bf21f9
[2.7] bpo-34234: Use _PyAnyInt_Check() and _PyAnyInt_CheckExact(). (GH-8479) 2018-07-31 09:09:36 +03:00
Miss Islington (bot) a45fa39d85
bpo-34080: Fix a memory leak in the compiler. (GH-8222)
(cherry picked from commit 993030aac5)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2018-07-11 14:53:17 -07:00
Serhiy Storchaka ef19fd200d
[2.7] bpo-23927: Make getargs.c skipitem() skipping 'w*'. (GH-8192). (GH-8255)
(cherry picked from commit 504373c59b)

Also backport tests for skipitem() and handling errors.
2018-07-11 19:49:17 +03:00
Serhiy Storchaka 55299fffe3
[2.7] bpo-33330: Improve error handling in PyImport_Cleanup(). (GH-6564). (GH-6605)
(cherry picked from commit e9d9494d6b)
2018-04-26 03:28:14 +03:00
Serhiy Storchaka 72f3e08875
[2.7] bpo-33132: Fix reference counting issues in the compiler. (GH-6209). (GH-6322)
(cherry picked from commit a95d98607e)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2018-04-01 10:26:33 +03:00
Xiang Zhang 34bb88dc5b
Clear possible exception before calling PyTuple_Pack in IMPORT_NAME (GH-6033) 2018-03-09 10:21:58 +08:00
INADA Naoki 2942b909d9
bpo-32616: Disable computed gotos by default for clang < 5 (GH-5574) 2018-02-07 19:09:36 +09:00
Mariatta 9b7b3a6456
bpo-32674: Improve the docstring for __import__ (GH-5339) (GH-5494)
Clarify that the level argument is used to determine whether to
perform absolute or relative imports: 0 is absolute, while a positive number
is the number of parent directories to search relative to the current module..
(cherry picked from commit 461d225b19)

Co-authored-by: oldk <oldk1331@users.noreply.github.com>
2018-02-02 11:23:53 -05:00
Benjamin Peterson e13698172f
[2.7] advance copyright years to 2018 (GH-5094). (#5105)
(cherry picked from commit 65f2a6dcc2)
2018-01-04 23:02:11 -08:00
Serhiy Storchaka 65d1887170
[2.7] bpo-10544: Deprecate "yield" in comprehensions and generator expressions in Py3k mode. (GH-4579) (#4676) 2017-12-02 21:00:09 +02:00
Victor Stinner be6b74c079
bpo-20891: Fix PyGILState_Ensure() (#4650) (#4657)
When PyGILState_Ensure() is called in a non-Python thread before
PyEval_InitThreads(), only call PyEval_InitThreads() after calling
PyThreadState_New() to fix a crash.

(cherry picked from commit b4d1e1f7c1)
2017-11-30 23:35:14 +01:00
Benjamin Peterson 88d5e2c938 fix marshal uninitialized variable warnings (#4114)
GCC says:
../cpython/Python/marshal.c: In function ‘PyMarshal_WriteLongToFile’:
../cpython/Python/marshal.c:70:35: warning: ‘wf.ptr’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                       else if ((p)->ptr != (p)->end) *(p)->ptr++ = (c); \
                                   ^~
../cpython/Python/marshal.c:70:47: warning: ‘wf.end’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                       else if ((p)->ptr != (p)->end) *(p)->ptr++ = (c); \
                                               ^~
../cpython/Python/marshal.c:77:10: warning: ‘wf.str’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (p->str == NULL)
         ~^~~~~

This isn't a real problem because if the file pointer is not NULL, the
string-related fields are never touched. But, it doesn't hurt to set the unused
fields to NULL.
2017-10-24 23:09:55 -07:00
Victor Stinner 7b4ba62e38 [2.7] bpo-31692: Add PYTHONSHOWALLOCCOUNT env var (GH-3927)
bpo-31692, bpo-19527:

* Add a new PYTHONSHOWALLOCCOUNT environment variable, similar to
  the Python 3 "-X showalloccount" option
* When Python is compiled with COUNT_ALLOCS, the new
  PYTHONSHOWALLOCCOUNT environment variable now has to be set to dump
  allocation counts into stderr on shutdown. Moreover, allocations
  statistics are now dumped into stderr rather than stdout.
* Add @test.support.requires_type_collecting decorator: skip test if
  COUNT_ALLOCS is defined
* Fix tests for COUNT_ALLOCS: decorate some methods with
  @requires_type_collecting
* test_sys.test_objecttypes(): update object type when COUNT_ALLOCS
  is defined
2017-10-17 02:25:23 -07:00
Victor Stinner 3c082a7fdb bpo-31733: Add PYTHONSHOWREFCOUNT env var (GH-3932)
Add a new PYTHONSHOWREFCOUNT environment variable. In debug mode,
Python now only print the total reference count if PYTHONSHOWREFCOUNT
is set.
2017-10-17 01:35:19 -07:00
Miss Islington (bot) 2fb8e93859 [2.7] remove tabs from getcompiler.c (GH-3892) (#3894)
(cherry picked from commit a8ed11742b)
2017-10-05 08:41:31 -07:00
Oren Milman 40d736bcf4 [2.7] bpo-31285: Don't raise a SystemError in warnings.warn_explicit() in case __loader__.get_source() has a bad splitlines() method. (GH-3219) (#3823)
(cherry picked from commit 91fb0af)
2017-09-30 17:06:55 +03:00
Serhiy Storchaka 004547f970 [2.7] bpo-31411: Prevent raising a SystemError in case warnings.onceregistry is not a dictionary. (GH-3485). (#3493)
(cherry picked from commit 252033d50e)
2017-09-11 10:01:31 +03:00
Serhiy Storchaka 6ed7aff894 [2.7] bpo-29526: Add reference to help('FORMATTING') in format() builtin (GH-166). (#3492)
(cherry picked from commit 2e6bb4484e)
2017-09-11 09:26:39 +03:00
Yuan Chao Chou 5fbb8e367d Fix a shadow-compatible-local warning (#2182)
Change the shadowing naming, 'value' (Python-ast.c:3814), to 'val'
to prevent the variables from being misused.
2017-08-04 10:54:27 -07:00
Antoine Pitrou 828488393c [2.7] bpo-30765: Avoid blocking when PyThread_acquire_lock() is asked not to (GH-2403) (#2420)
* [2.7] bpo-30765: Avoid blocking when PyThread_acquire_lock() is asked not to (GH-2403)

* bpo-30765: Avoid blocking when PyThread_acquire_lock() is asked not to lock

This is especially important if PyThread_acquire_lock() is called reentrantly
(for example from a signal handler).

* Update 2017-06-26-14-29-50.bpo-30765.Q5iBmf.rst

* Avoid core logic when taking the mutex failed.
(cherry picked from commit f84ac420c2)

* Remove test undef
2017-06-26 22:13:39 +02:00
Mariatta 536209ef92 bpo-23787: Change sum() docstring from sequence to iterable (GH-1859)
* bpo-23787: Change sum() docstring from sequence to iterable

Original patch by Raymond Hettinger.
2017-06-06 09:12:03 -07:00
Xiang Zhang 05469fa1c0 bpo-30281: Fix the default value for stop in PySlice_Unpack() (#1531) (#1480) 2017-05-10 19:20:28 +08:00
Victor Stinner 2c7085fd7b bpo-27593: Get SCM build info from git instead of hg (#1327)
Based on commit 5c4b0d063a by Ned
Deily, which is based on original patches by Brett Cannon and Steve
Dower.

Remove also the private _Py_svnversion() function and SVNVERSION
variable.

Note: Py_SubversionRevision() and Py_SubversionShortBranch() are
unchanged, they are part of the public API.
2017-05-02 16:55:50 +02:00
Serhiy Storchaka 079f21f873 bpo-29935: Fixed error messages in the index() method of tuple and list (#887) (#907) (#910)
when pass indices of wrong type.
(cherry picked from commit d4edfc9abf)
(cherry picked from commit bf4bb2e430)
2017-03-30 20:32:18 +03:00
Serhiy Storchaka 9fbb65e646 bpo-29655: Fixed possible reference leaks in `import *`. (#301) (#510)
Original patch by Matthias Bussonnier.
(cherry picked from commit 160edb4357)
2017-03-08 13:44:33 +02:00
Xiang Zhang b4f0e980b6 bpo-28598: Support __rmod__ for RHS subclasses of str in % string formatting operations (GH-366) 2017-03-01 14:28:14 +08:00
Mark Dickinson ea82972ec8 Issue #14376: sys.exit now accepts longs as well as ints. Thanks Gareth Rees. 2017-02-02 19:31:53 +00:00
Victor Stinner 01bdbad3e9 Don't use getentropy() on Linux
Issue #29188: Support glibc 2.24 on Linux: don't use getentropy() function but
read from /dev/urandom to get random bytes, for example in os.urandom().  On
Linux, getentropy() is implemented which getrandom() is blocking mode, whereas
os.urandom() should not block.
2017-01-09 11:10:41 +01:00
Benjamin Peterson 2f7d13c662 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 ea02cdc7ec ring in 2017 for Python 2017-01-01 22:04:13 -06:00
Benjamin Peterson 6b1c909c08 add a specific configure check for sys/random.h (closes #28932) 2016-12-19 23:54:25 -08:00
Ned Deily 09231e657a Issue #28676: Prevent missing 'getentropy' declaration warning on macOS.
Initial patch by Gareth Rees.
2016-11-12 16:34:25 -05:00
Ned Deily 0caaa6c94d Issue #28616: Correct help for sys.version_info releaselevel component.
Patch by Anish Tambe.
2016-11-04 17:05:59 -04:00
Berker Peksag 05b84439a3 Issue #21720: Improve exception message when the type of fromlist is unicode 2016-10-17 01:05:04 +03:00
Serhiy Storchaka 08995a3390 Issue #24098: Fixed possible crash when AST is changed in process of
compiling it.
2016-10-07 21:51:09 +03:00