Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
gh-102950: Implement PEP 706 – Filter for tarfile.extractall#102953
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Here's what I have so far; still working ontarfile.py
.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
bedevere-bot commentedMar 23, 2023
When you're done making the requested changes, leave the comment: |
Uh oh!
There was an error while loading.Please reload this page.
@gpshead, did you want to take a look? |
I have made the requested changes; please review again |
bedevere-bot commentedApr 3, 2023
Thanks for making the requested changes! @ethanfurman: please review the changes made to this pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I reviewed the changes inDoc/
.
Doc/library/tarfile.rst Outdated
.. versionadded:: 3.12 | ||
The *tar* format is designed to capture all details of a UNIX-like ecosystem, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
The *tar* format is designed to capture all details of a UNIX-likeecosystem, | |
The *tar* format is designed to capture all details of a UNIX-likefilesystem, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I also tend to say POSIX rather than UNIX at this point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
POSIX is more precise, but this intentionally hand-wavy terminology: I think UNIX-like is more understandable to more people than POSIX-like.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
If there are no objections, I plan to merge this around Wednesday. Please let me know if you're working on a review. |
Lib/tarfile.py Outdated
except TarError as e: | ||
if self.errorlevel > 0: | ||
raise |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
After reading the docs, I thought only OSErrors will be raised with errorlevel == 1. This seems to raise even TarErrors with errorlevel 1 or 2. What do I miss?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Oh dear. What a rabbit hole. Thanks for raising it, and for a very helpful private discussion.
This warrants an addition to the PEP:https://discuss.python.org/t/23149/26
Please voice your concerns there!
I've updated this PR with my preferred solution, so you can see the areas that need to change and so I get a CI check. It doesn't mean the discussion is over, of course.
bedevere-bot commentedApr 20, 2023
encukou commentedApr 24, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
The remaining buildbot failures are unrelated and happened on |
Hi, with this integrated, I see one new test failure on Solaris:
The issue seems to be the fact that setting sticky bit on files as regular user doesn't do anything on Solaris, and from my limited testing, the same seems to be true on some other systems as well (I tried FreeBSD and |
encukou commentedApr 25, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Thanks for the report! The tests are intentionally pretty strict. I'll relax this one. (Edit: see#103831) |
…H-102953) (GH-103832)See [Backporting & Forward Compatibility in PEP 706](https://peps.python.org/pep-0706/#backporting-forward-compatibility).- Backportb52ad18- Backportc8c3956- Remove the DeprecationWarning- Adjust docs- Remove new `__all__` entries
bedevere-bot commentedMay 3, 2023
GH-104128 is a backport of this pull request to the3.10 branch. |
bedevere-bot commentedMay 9, 2023
GH-104327 is a backport of this pull request to the3.10 branch. |
bedevere-bot commentedMay 11, 2023
GH-104382 is a backport of this pull request to the3.9 branch. |
bedevere-bot commentedMay 15, 2023
|
bedevere-bot commentedMay 16, 2023
|
A |
bedevere-bot commentedMay 16, 2023
GH-104548 is a backport of this pull request to the3.8 branch. |
bedevere-bot commentedMay 17, 2023
GH-104583 is a backport of this pull request to the3.7 branch. |
* Post 3.8.16* [3.8] Update copyright years to 2023. (pythongh-100852)* [3.8] Update copyright years to 2023. (pythongh-100848).(cherry picked from commit11f9932)Co-authored-by: Benjamin Peterson <benjamin@python.org>* Update additional copyright years to 2023.Co-authored-by: Ned Deily <nad@python.org>* [3.8] Update copyright year in README (pythonGH-100863) (pythonGH-100867)(cherry picked from commit30a6cc4)Co-authored-by: Ned Deily <nad@python.org>Co-authored-by: HARSHA VARDHAN <75431678+Thunder-007@users.noreply.github.com>* [3.8] CorrectCVE-2020-10735 documentation (pythonGH-100306) (python#100698)(cherry picked from commit1cf3d78)(cherry picked from commit88fe8d7)Co-authored-by: Jeremy Paige <ucodery@gmail.com>Co-authored-by: Gregory P. Smith <greg@krypto.org>* [3.8] Bump Azure Pipelines to ubuntu-22.04 (pythonGH-101089) (python#101215)(cherry picked from commitc22a55c)Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>* [3.8]pythongh-100180: Update Windows installer to OpenSSL 1.1.1s (pythonGH-100903) (python#101258)*pythongh-101422: (docs) TarFile default errorlevel argument is 1, not 0 (pythonGH-101424)(cherry picked from commitea23271)Co-authored-by: Owain Davies <116417456+OTheDev@users.noreply.github.com>* [3.8]pythongh-95778: add doc missing in some places (pythonGH-100627) (python#101630)(cherry picked from commit4652182)* [3.8]pythongh-101283: Improved fallback logic for subprocess with shell=True on Windows (pythonGH-101286) (python#101710)Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>Co-authored-by: Steve Dower <steve.dower@microsoft.com>* [3.8]pythongh-101981: Fix Ubuntu SSL tests with OpenSSL (3.1.0-beta1) CI i… (python#102095)[3.8]pythongh-101981: Fix Ubuntu SSL tests with OpenSSL (3.1.0-beta1) CI issue (pythongh-102079)* [3.8]pythonGH-102306 Avoid GHA CI macOS test_posix failure by using the appropriate macOS SDK (pythonGH-102307)[3.8] Avoid GHA CI macOS test_posix failure by using the appropriate macOS SDK.* [3.8]pythongh-101726: Update the OpenSSL version to 1.1.1t (pythonGH-101727) (pythonGH-101752)FixesCVE-2023-0286 (High) and a couple of Medium security issues.https://www.openssl.org/news/secadv/20230207.txtCo-authored-by: Gregory P. Smith <greg@krypto.org>Co-authored-by: Ned Deily <nad@python.org>* [3.8]pythongh-102627: Replace address pointing toward malicious web page (pythonGH-102630) (pythonGH-102667)(cherry picked from commit61479d4)Co-authored-by: Blind4Basics <32236948+Blind4Basics@users.noreply.github.com>Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>* [3.8]pythongh-101997: Update bundled pip version to 23.0.1 (pythonGH-101998). (python#102244)(cherry picked from commit89d9ff0)* [3.8]pythongh-102950: Implement PEP 706 – Filter for tarfile.extractall (pythonGH-102953) (python#104548)Backport ofc8c3956* [3.8]pythongh-99889: Fix directory traversal security flaw in uu.decode() (pythonGH-104096) (python#104332)(cherry picked from commit0aeda29)Co-authored-by: Sam Carroll <70000253+samcarroll42@users.noreply.github.com>* [3.8]pythongh-104049: do not expose on-disk location from SimpleHTTPRequestHandler (pythonGH-104067) (python#104121)Do not expose the local server's on-disk location from `SimpleHTTPRequestHandler` when generating a directory index. (unnecessary information disclosure)(cherry picked from commitc7c3a60)Co-authored-by: Ethan Furman <ethan@stoneleaf.us>Co-authored-by: Gregory P. Smith <greg@krypto.org>Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>* [3.8]pythongh-103935: Use `io.open_code()` when executing code in trace and profile modules (pythonGH-103947) (python#103954)Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com>* [3.8]pythongh-68966: fix versionchanged in docs (pythonGH-105299)* [3.8] Update GitHub CI workflow for macOS. (pythonGH-105302)* [3.8]pythongh-105184: document that marshal functions can fail and need to be checked with PyErr_Occurred (pythonGH-105185) (python#105222)(cherry picked from commitee26ca1)Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>* [3.8]pythongh-102153: Start stripping C0 control and space chars in `urlsplit` (pythonGH-102508) (pythonGH-104575) (pythonGH-104592) (python#104593) (python#104895)`urllib.parse.urlsplit` has already been respecting the WHATWG spec a bitpythonGH-25595.This adds more sanitizing to respect the "Remove any leading C0 control or space from input" [rule](https://url.spec.whatwg.org/GH-url-parsing:~:text=Remove%20any%20leading%20and%20trailing%20C0%20control%20or%20space%20from%20input.) in response to [CVE-2023-24329](https://nvd.nist.gov/vuln/detail/CVE-2023-24329).I simplified the docs by eliding the state of the world explanatoryparagraph in this security release only backport. (people will seethat in the mainline /3/ docs)(cherry picked from commitd7f8a5f)(cherry picked from commit2f630e1)(cherry picked from commit610cc0a)(cherry picked from commitf48a96a)Co-authored-by: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com>Co-authored-by: Illia Volochii <illia.volochii@gmail.com>Co-authored-by: Gregory P. Smith [Google] <greg@krypto.org>* [3.8]pythongh-103142: Upgrade binary builds and CI to OpenSSL 1.1.1u (pythonGH-105174) (pythonGH-105200) (pythonGH-105205) (python#105370)Upgrade builds to OpenSSL 1.1.1u.Also updates _ssl_data_111.h from OpenSSL 1.1.1u, _ssl_data_300.h from 3.0.9.Manual edits to the _ssl_data_300.h file prevent it from removing anyexisting definitions in case those exist in some peoples builds and wereimportant (avoiding regressions during backporting).(cherry picked from commitede89af)(cherry picked from commite15de14)Co-authored-by: Gregory P. Smith <greg@krypto.org>Co-authored-by: Ned Deily <nad@python.org>* Python 3.8.17* Post 3.8.17* Updated CI to build 3.8.17---------Co-authored-by: Łukasz Langa <lukasz@langa.pl>Co-authored-by: Benjamin Peterson <benjamin@python.org>Co-authored-by: Ned Deily <nad@python.org>Co-authored-by: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com>Co-authored-by: HARSHA VARDHAN <75431678+Thunder-007@users.noreply.github.com>Co-authored-by: Gregory P. Smith <greg@krypto.org>Co-authored-by: Jeremy Paige <ucodery@gmail.com>Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>Co-authored-by: Steve Dower <steve.dower@python.org>Co-authored-by: Owain Davies <116417456+OTheDev@users.noreply.github.com>Co-authored-by: Éric <earaujo@caravan.coop>Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>Co-authored-by: Steve Dower <steve.dower@microsoft.com>Co-authored-by: Dong-hee Na <donghee.na@python.org>Co-authored-by: Blind4Basics <32236948+Blind4Basics@users.noreply.github.com>Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>Co-authored-by: Pradyun Gedam <pradyunsg@gmail.com>Co-authored-by: Petr Viktorin <encukou@gmail.com>Co-authored-by: Sam Carroll <70000253+samcarroll42@users.noreply.github.com>Co-authored-by: Ethan Furman <ethan@stoneleaf.us>Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com>Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>Co-authored-by: stratakis <cstratak@redhat.com>Co-authored-by: Illia Volochii <illia.volochii@gmail.com>
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
So that the script can be used on Debian 12.> Changed in version 3.11.4: Added the filter parameter.--https://docs.python.org/3.11/library/tarfile.htmlThe implementation was inpython/cpython#102953Before this change, Debian 12 has Python 3.11.2, so this script errorson a call with `filter=`After this change the script does not error.
Uh oh!
There was an error while loading.Please reload this page.
SeePEP-706 for details.
I might have overengineered the tests a bit, moving boilerplate to a set of helpers. Hopefully the tests themselves are clear enough to make it worth it.