Commit graph

47798 commits

Author SHA1 Message Date
Miss Islington (bot)
5a17200022
gh-96710: Make the test timing more lenient for the int/str DoS regression test. (GH-96717)
A regression would still absolutely fail and even a flaky pass isn't
harmful as it'd fail most of the time across our N system test runs.

Windows has a low resolution timer and CI systems are prone to odd
timing so this just gives more leeway to avoid flakiness.
(cherry picked from commit 11e3548fd1)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2022-09-09 13:13:45 -07:00
Miss Islington (bot)
f60bbf0a93
GH-74116: Allow multiple drain waiters for asyncio.StreamWriter (GH-94705)
(cherry picked from commit e5b2453e61)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2022-09-08 08:42:08 -07:00
Miss Islington (bot)
280130f035
gh-90467: StreamReaderProtocol - add strong reference to created task (GH-96323)
(cherry picked from commit e860e521ec)

Co-authored-by: Kirill <iam@python273.pw>
2022-09-08 08:39:20 -07:00
Miss Islington (bot)
19b94bc136
gh-96352: Set AttributeError context in _PyObject_GenericGetAttrWithDict (GH-96353)
(cherry picked from commit b9634ac776)

Co-authored-by: philg314 <110174000+philg314@users.noreply.github.com>
2022-09-08 04:46:53 -07:00
Miss Islington (bot)
b6af933716
gh-96611: Fix error message for invalid UTF-8 in mid-multiline string (GH-96623)
(cherry picked from commit 05692c67c5)

Co-authored-by: Michael Droettboom <mdboom@gmail.com>
2022-09-06 16:36:03 -07:00
Pablo Galindo
6ac0f8f0d7
Merge remote-tracking branch 'upstream/3.10' into 3.10 2022-09-06 10:18:57 +01:00
Miss Islington (bot)
6cc31af657
gh-92986: Fix ast.unparse when ImportFrom.level is None (GH-92992)
This doesn't happen naturally, but is allowed by the ASDL and compiler.
We don't want to change ASDL for backward compatibility reasons
(GH-57645, GH-92987)
(cherry picked from commit 200c9a8da0)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2022-09-05 10:39:52 -07:00
Pablo Galindo
6cc6b13308
Python 3.10.7 2022-09-05 14:00:02 +01:00
Gregory P. Smith
eace09e63e
[3.10] gh-95778: Correctly pre-check for int-to-str conversion (GH-96537) (#96563)
Converting a large enough `int` to a decimal string raises `ValueError` as expected. However, the raise comes _after_ the quadratic-time base-conversion algorithm has run to completion. For effective DOS prevention, we need some kind of check before entering the quadratic-time loop. Oops! =)

The quick fix: essentially we catch _most_ values that exceed the threshold up front. Those that slip through will still be on the small side (read: sufficiently fast), and will get caught by the existing check so that the limit remains exact.

The justification for the current check. The C code check is:
```c
max_str_digits / (3 * PyLong_SHIFT) <= (size_a - 11) / 10
```

In GitHub markdown math-speak, writing $M$ for `max_str_digits`, $L$ for `PyLong_SHIFT` and $s$ for `size_a`, that check is:
$$\left\lfloor\frac{M}{3L}\right\rfloor \le \left\lfloor\frac{s - 11}{10}\right\rfloor$$

From this it follows that
$$\frac{M}{3L} < \frac{s-1}{10}$$
hence that
$$\frac{L(s-1)}{M} > \frac{10}{3} > \log_2(10).$$
So
$$2^{L(s-1)} > 10^M.$$
But our input integer $a$ satisfies $|a| \ge 2^{L(s-1)}$, so $|a|$ is larger than $10^M$. This shows that we don't accidentally capture anything _below_ the intended limit in the check.

<!-- gh-issue-number: gh-95778 -->
* Issue: gh-95778
<!-- /gh-issue-number -->

Co-authored-by: Gregory P. Smith [Google LLC] <greg@krypto.org>
(cherry picked from commit b126196838)

Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
2022-09-04 09:54:56 -07:00
Miss Islington (bot)
4dea99f18e
gh-68163: Correct conversion of Rational instances to float (GH-25619) (GH-96557)
* gh-68163: Correct conversion of Rational instances to float

Also document that numerator/denominator properties are instances of Integral.

Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
(cherry picked from commit 8464b754c4)

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
2022-09-04 13:40:24 +01:00
Vinay Sajip
c3dbbc88da
[3.10] gh-90195: Unset logger disabled flag when configuring it. (GH-96530) (GH-96533) 2022-09-03 15:10:04 +01:00
Miss Islington (bot)
9fe9b9c457
gh-75500: Update idlelib/help.html (GH-96523)
(cherry picked from commit 837ce6460d)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-09-03 00:59:15 -07:00
Miss Islington (bot)
cb39a44e00
bpo-30419: DOC: Update missing information in bdb docs (GH-1687)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Martin Panter <vadmium@users.noreply.github.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
(cherry picked from commit ccce9b77e1)

Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com>
2022-09-02 10:49:23 -07:00
Gregory P. Smith
8f0fa4bd10
[3.10] gh-95778: CVE-2020-10735: Prevent DoS by very large int() (#96501)
Integer to and from text conversions via CPython's bignum `int` type is not safe against denial of service attacks due to malicious input. Very large input strings with hundred thousands of digits can consume several CPU seconds.

This PR comes fresh from a pile of work done in our private PSRT security response team repo.

This backports https://github.com/python/cpython/pull/96499 aka 511ca94520

Signed-off-by: Christian Heimes [Red Hat] <christian@python.org>
Tons-of-polishing-up-by: Gregory P. Smith [Google] <greg@krypto.org>
Reviews via the private PSRT repo via many others (see the NEWS entry in the PR).

<!-- gh-issue-number: gh-95778 -->
* Issue: gh-95778
<!-- /gh-issue-number -->

I wrote up [a one pager for the release managers](https://docs.google.com/document/d/1KjuF_aXlzPUxTK4BMgezGJ2Pn7uevfX7g0_mvgHlL7Y/edit#).
2022-09-02 09:51:49 -07:00
Miss Islington (bot)
069fefdaf4
gh-95231: Disable md5 & crypt modules if FIPS is enabled (GH-94742)
If kernel fips is enabled, we get permission error upon doing
`import crypt`. So, if kernel fips is enabled, disable the
unallowed hashing methods.

Python 3.9.1 (default, May 10 2022, 11:36:26)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.9/crypt.py", line 117, in <module>
    _add_method('MD5', '1', 8, 34)
  File "/usr/lib/python3.9/crypt.py", line 94, in _add_method
    result = crypt('', salt)
  File "/usr/lib/python3.9/crypt.py", line 82, in crypt
    return _crypt.crypt(word, salt)
PermissionError: [Errno 1] Operation not permitted

Signed-off-by: Shreenidhi Shedi <sshedi@vmware.com>
(cherry picked from commit 2fa03b1b07)

Co-authored-by: Shreenidhi Shedi <53473811+sshedi@users.noreply.github.com>
2022-08-30 00:59:56 -07:00
Miss Islington (bot)
60f704f125
gh-95950: Add a test for both csv.Dialect and kwargs (GH-95951)
(cherry picked from commit 1c01bd28a0)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2022-08-28 18:11:02 -07:00
Miss Islington (bot)
9b070d361d
gh-96021: Explicitly tear down the IsolatedAsyncioTestCase loop in tests (GH-96135) (GH-96235)
Tests for IsolatedAsyncioTestCase.debug() rely on the runner be closed
in __del__. It makes tests depending on the GC an unreliable on other
implementations. It is better to tear down the loop explicitly even if
currently there is no a public API for this.
(cherry picked from commit 4de06e3cc0)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2022-08-28 08:35:39 +03:00
Miss Islington (bot)
c0a9859afb
[3.10] gh-89047: Fix msecs computation so you never end up with 1000 msecs. (GH-96340) (GH-96342) 2022-08-27 15:10:17 +01:00
Miss Islington (bot)
a2cf98449c
[3.10] gh-92007: Handle elevation errors in NTEventLogHandler more grace… (GH-96322) (GH-96338) 2022-08-27 12:37:55 +01:00
Miss Islington (bot)
c216af8e8e
fix threading.Event.isSet() docstring (GH-96297)
fixes gh-96296
(cherry picked from commit e534440510)

Co-authored-by: Daniel Giger <danielg3432@gmail.com>
2022-08-26 22:30:41 -07:00
Miss Islington (bot)
979a3b8cd3
gh-95243: Mitigate the race condition in testSockName (GH-96173)
find_unused_port() has an inherent race condition, but we can't use
bind_port() as that uses .getsockname() which this test is exercising.

Try binding to unused ports a few times before failing.

Signed-off-by: Ross Burton <ross.burton@arm.com>
(cherry picked from commit df11012697)

Co-authored-by: Ross Burton <ross.burton@arm.com>
2022-08-24 19:01:50 -07:00
Kumar Aditya
e3c4a5b8ed
[3.10] GH-96071: add regression test for GH-96071 (GH-96137) (#96205)
Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2022-08-23 23:28:54 +01:00
Miss Islington (bot)
e783a23702
gh-96175: add missing self._localName assignment in xml.dom.minidom.Attr (GH-96176)
X-Ref: https://github.com/python/typeshed/pull/8590GH-discussion_r951473977

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
(cherry picked from commit 58f6953d6d)

Co-authored-by: Kevin Kirsche <Kev.Kirsche+GitHub@gmail.com>
2022-08-23 09:42:10 -07:00
Kristján Valur Jónsson
d23ab79952
[3.10] GH--93592: Fix frame chain when throwing exceptions into coroutines (GH-95207) 2022-08-23 12:23:39 +01:00
Miss Islington (bot)
9c34d644ed
[3.10] gh-96159: Fix significant performance degradation in logging.TimedRotat… (GH-96182) (GH-96195)
Co-authored-by: Duncan Grisby <duncan-github@grisby.org>
2022-08-23 08:00:40 +01:00
Miss Islington (bot)
230b630a76
gh-78143: IDLE - fix settings dialog page label. (GH-96009)
'/Tab' should have been removed from the font page label
when the tab-spaces setting was moved to the Windows page.
(cherry picked from commit f6b811059a)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-15 16:25:10 -07:00
Shantanu
9fbc81760e
[3.10] gh-94996: Disallow lambda pos only params with feature_version < (3, 8) (GH-95934) (GH-95938)
(cherry picked from commit a965db37f2)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>

Automerge-Triggered-By: GH:lysnikolaou
2022-08-12 12:47:07 -07:00
Shantanu
a92c2d6eb5
[3.10] gh-94996: Disallow parsing pos only params with feature_version < (3, 8) (GH-95935)
(cherry picked from commit b5e3ea2862)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>

Automerge-Triggered-By: GH:lysnikolaou
2022-08-12 12:03:44 -07:00
Miss Islington (bot)
bfaa071e1c
gh-95841: IDLE - Revise Windows local doc url (GH-95845)
GH-91242 replaced the Windows chm help file with a copy
of the html docs.  This PR replaces the IDLE code that
fetches the Windows local help url passed to os.startfile.
Co-authored-by: Steve Dower
(cherry picked from commit bdb2cf8e91)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-11 14:35:36 -07:00
Miss Islington (bot)
2579c4954f
gh-84910: Change 'IDLE Help' to 'IDLE Doc' (GH-95873)
'IDLE Help' was a plain text file.  It was superceded years ago
by a copy of the much more complete html doc.  .
(cherry picked from commit 05a0f37029)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-11 14:17:11 -07:00
Miss Islington (bot)
b11895e3e7
gh-95349: Hide a Distutils Warning Filter for test_check_c_globals (GH-95837)
Under certain build conditions, test_check_c_globals fails.  This fix takes the same approach as we took for gh-84236 (via gh-20095).  We'll be removing use of distutils in the c-analyzer at some point.  Until then we'll hide the warning filter.
(cherry picked from commit 3ff6d9affb)

Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
2022-08-10 17:15:53 -07:00
Miss Islington (bot)
b4f968e094
gh-95605: Fix float(s) error message when s contains only whitespace (GH-95665) (GH-95859)
This PR fixes the error message from float(s) in the case where s contains only whitespace.
(cherry picked from commit 97e9cfa75a)

Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
2022-08-10 19:57:55 +01:00
Miss Islington (bot)
64abb73354
gh-75500: Add idlelib section to IDLE doc (GH-95832)
This enables accessing IDLE as 'idlelib' in the Doc Module listing.
(cherry picked from commit 70fc9641b5)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-09 12:33:37 -07:00
Miss Islington (bot)
a9c25cdd0d
[3.11] gh-88878: IDLE - replace type('') with str (GH-95792)
Change in idlelib.browser, line 54
cherrypicked from 3680ebed7f
(cherry picked from commit 1a22ec5d69)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-09 11:10:00 -07:00
Serhiy Storchaka
da4aae29f8
[3.10] gh-91838: Resolve more HTTP links which redirect to HTTPS (GH-95650). (GH-95786)
(cherry picked from commit cc9160a29b)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2022-08-08 18:09:06 +03:00
Miss Islington (bot)
6d1919009f
gh-95491: Mention IDLE Issue project in Readme (GH-95750)
(cherry picked from commit 63140b445e)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-08 07:03:23 -07:00
Miss Islington (bot)
f05a0f48e8
gh-95376: Add test for names containing null (GH-GH-5394) (GH-95747)
Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@protonmail.com>
(cherry picked from commit a17cd47b61)

Co-authored-by: Sion Kang <31057849+Yaminyam@users.noreply.github.com>
2022-08-06 19:32:27 +02:00
Miss Islington (bot)
9278fc4e27
gh-95395: Add argument type error test (GH-95412) (GH-95745)
(cherry picked from commit 4703c15811)

Co-authored-by: Sion Kang <31057849+Yaminyam@users.noreply.github.com>
2022-08-06 19:30:29 +02:00
Miss Islington (bot)
9a23f582ee
Fix typo in test_dataclasses.py (gh-95735)
`dataclass` was called as a function when it was almost certainly intended to be a decorator.
(cherry picked from commit 59e09efe88)

Co-authored-by: da-woods <dw-git@d-woods.co.uk>
2022-08-06 09:16:01 -07:00
Miss Islington (bot)
426bf7bbf9
gh-95251: IDLE - Add What's New section to README (GH-95688)
Document what I (TJR) currently do for 3.10/3.11.

Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
(cherry picked from commit a302a27489)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-05 14:43:53 -07:00
Miss Islington (bot)
7c711aecf6
gh-89362: Doc IDLE menu and search (GH-95697)
Update menu item position and capitalization.
Add paragraph about search.
For help.html, include save-as addition.
(cherry picked from commit 834064c19a)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-05 09:51:53 -07:00
Miss Islington (bot)
2351593319
gh-65802: IDLE - explain SaveAs and extensions (GH-95690)
File name extensions may or may not be shown for the current name
and are added in an OS-dependent manner if not given for the new
name.
(cherry picked from commit 9890f86ae2)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-04 23:26:26 -07:00
Miss Islington (bot)
be30a6dc4d
gh-91838: Resolve HTTP links which redirect to HTTPS (GH-95642)
It updates links which redirect to HTTPS with different authority or
path.
(cherry picked from commit d0d0154443)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2022-08-04 06:15:01 -07:00
Miss Islington (bot)
c5916a034a
gh-95638: Update idlelib README file and menu lists (GH-95639)
(cherry picked from commit 621b33ce25)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-04 01:05:20 -07:00
Miss Islington (bot)
f6c46b4852
gh-95597: Fix typo in Lib directory files (GH-95599)
(cherry picked from commit b53aed76d2)

Co-authored-by: Jo, Yunjin <black33jo@gmail.com>
2022-08-03 14:50:10 -07:00
Miss Islington (bot)
72e4afdc8a
gh-95609: update bundled pip to 22.2.2 (gh-95610)
(cherry picked from commit 3d9d45b22c)

Co-authored-by: Stéphane Bidoul <stephane.bidoul@gmail.com>
2022-08-03 13:11:41 -07:00
Miss Islington (bot)
654d62adc6
gh-95191: IDLE: Include prompts when saving Shell GH-95554 (#95558)
(cherry picked from commit b85411fc5e)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-08-02 13:17:50 +02:00
Miss Islington (bot)
b0c3825557
gh-83270: Update IDLE's credits (GH-95528) (#95560)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
(cherry picked from commit 698fa8bf60)

Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@protonmail.com>
2022-08-02 13:16:33 +02:00
Pablo Galindo
9c7b4bd164
Python 3.10.6 2022-08-01 21:25:27 +01:00
Miss Islington (bot)
4eab100e0d
gh-95511: IDLE - fix Shell context menu copy-with-prompts bug (GH-95512)
If one selects whole lines, as the sidebar makes easy, do not
add an extra line.  Only move the end of a selection to the
beginning of the next line when not already at the beginning
of a line.  (Also improve the surrounding code.)
(cherry picked from commit fc31a13dc1)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2022-07-31 22:25:56 -07:00