Commit Graph

135 Commits

Author SHA1 Message Date
T. Wouters 9c1110ef66
[3.10] gh-135034: Normalize link targets in tarfile, add `os.path.realpath(strict='allow_missing')` (GH-135037) (#135070)
Addresses CVEs 2024-12718, 2025-4138, 2025-4330, and 2025-4517.
(cherry picked from commit 3612d8f517)
(cherry picked from commit c358142cab)
(cherry picked from commit 371b4eaadc)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Signed-off-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-06-03 19:02:29 +02:00
Thomas Wouters e0cb9afea4 Revert "Fix a glaring error in the logic backport of posixpath."
This reverts commit b357f2bca3, which was
never meant to go into 3.10.
2025-06-03 14:25:37 +02:00
Thomas Wouters b357f2bca3 Fix a glaring error in the logic backport of posixpath. 2025-06-03 14:12:21 +02:00
Miss Islington (bot) 5717ab3ac5
[3.10] gh-96192: fix os.ismount() to use a path that is str or bytes (GH-96194) (#99456)
gh-96192: fix os.ismount() to use a path that is str or bytes (GH-96194)
(cherry picked from commit 367f552129)

Signed-off-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name>
Co-authored-by: Christoph Anton Mitterer <calestyo@scientia.org>
Co-authored-by: Eryk Sun <eryksun@gmail.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2023-01-22 05:19:10 -08: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) 443db64f49
bpo-26329: update os.path.normpath documentation (GH-20138) (GH-27094)
(cherry picked from commit 66c5853406)

Co-authored-by: Furkan Onder <furkanonder@protonmail.com>
2021-07-12 17:07:46 +02:00
Barney Gale baecfbd849
bpo-43757: Make pathlib use os.path.realpath() to resolve symlinks in a path (GH-25264)
Also adds a new "strict" argument to realpath() to avoid changing the default behaviour of pathlib while sharing the implementation.
2021-04-28 16:50:17 +01:00
pxinwr 75dabfe7a8
bpo-31904: posixpath.expanduser() handles None user home on VxWorks (GH-23530) 2020-12-17 20:22:29 +01:00
Victor Stinner 2c4c02f8a8
bpo-35755: Remove current directory from posixpath.defpath (GH-11586)
Document the change in a NEWS entry of the Security category.
2019-04-17 17:05:30 +02:00
Wolfgang Maier 74510e2a57 bpo-30427: eliminate redundant type checks in os.path.normcase() (GH-1712)
https://bugs.python.org/issue30427
2019-03-28 14:47:18 -07:00
Victor Stinner d7538dd5e3
bpo-35471: Remove the macpath module (GH-11129)
Python 2.4 dropped MacOS 9 support. The macpath module was deprecated
in Python 3.7. This change removes it.
2018-12-14 13:37:26 +01:00
Victor Stinner f2f4555d82
bpo-10496: posixpath.expanduser() catchs pwd.getpwuid() error (GH-10919)
* posixpath.expanduser() now returns the input path unchanged if
  the HOME environment variable is not set and pwd.getpwuid() raises
  KeyError (the current user identifier doesn't exist in the password
  database).
* Add test_no_home_directory() to test_site.
2018-12-05 16:49:35 +01:00
Serhiy Storchaka 0185f34ddc
bpo-33721: Make some os.path functions and pathlib.Path methods be tolerant to invalid paths. (#7695)
Such functions as os.path.exists(), os.path.lexists(), os.path.isdir(),
os.path.isfile(), os.path.islink(), and os.path.ismount() now return False
instead of raising ValueError or its subclasses UnicodeEncodeError
and UnicodeDecodeError for paths that contain characters or bytes
unrepresentative at the OS level.
2018-09-18 11:28:51 +03:00
Serhiy Storchaka 3460198f6b
bpo-31802: Fix importing native path module before importing os. (#4017) 2018-01-07 17:54:31 +02:00
Brett Cannon 3f9183b5ac Issue #26027, #27524: Add PEP 519/__fspath__() support to os and
os.path.

Thanks to Jelle Zijlstra for the initial patch against posixmodule.c.
2016-08-26 14:44:48 -07:00
R David Murray 750018b91a #2466: ismount now recognizes mount points user can't access.
Patch by Robin Roth, reviewed by Serhiy Storchaka, comment wording
tweaked by me.
2016-08-18 21:27:48 -04:00
Martin Panter 119e502277 Fix typos in code comments and documentation 2016-04-16 09:28:57 +00:00
Serhiy Storchaka 5bfc03f430 Issue #23780: Improved error message in os.path.join() with single argument.
Idea by R. David Murray.
2015-05-19 11:00:07 +03:00
Serhiy Storchaka 3822093143 Issue #10395: Added os.path.commonpath(). Implemented in posixpath and ntpath.
Based on patch by Rafik Draoui.
2015-03-31 15:31:53 +03:00
Serhiy Storchaka e4f47088af Fixed tests on Windows for issue #21883. 2014-10-04 16:09:02 +03:00
Serhiy Storchaka 3deeeb0c39 Issue #21883: os.path.join() and os.path.relpath() now raise a TypeError with
more helpful error message for unsupported or mismatched types of arguments.
2014-10-04 14:58:43 +03:00
Serhiy Storchaka 1fa36268cf Issue #22034: Improve handling of wrong argument types in posixpath.join(). 2014-08-24 12:23:36 +03:00
Serhiy Storchaka 549c1972f2 Issue #22034: Got rid of misleading error message for bytearray arguments in
posixpath.join().
2014-08-24 12:18:09 +03:00
Ned Deily 845fd9aa44 Issue #3485: remove misleading comment 2014-06-18 13:09:40 -07:00
Serhiy Storchaka 1392f68e0e Fixed typo in previous commit (issue #6815). 2014-02-13 10:45:48 +02:00
Serhiy Storchaka ffadbb7ee7 Fixed typo in previous commit (issue #6815). 2014-02-13 10:45:14 +02:00
Serhiy Storchaka 7dfaa27fdd Issue #6815: os.path.expandvars() now supports non-ASCII environment
variables names and values.
2014-02-13 10:14:48 +02:00
Serhiy Storchaka dbb101909d Issue #6815: os.path.expandvars() now supports non-ASCII environment
variables names and values.
2014-02-13 10:13:53 +02:00
Brian Curtin a3852ff33a Add in a comment that was removed in 240adc564539 (requested by Victor Stinner) 2013-07-22 19:05:48 -05:00
Brian Curtin 06f6fbffd4 Fix #18530. Remove extra stat call from posixpath.ismount 2013-07-22 13:07:52 -05:00
Serhiy Storchaka 2a47954895 Fix posixpath.realpath() for multiple pardirs (fixes issue #6975). 2013-02-18 12:22:05 +02:00
Serhiy Storchaka 407aa2df2a Fix posixpath.realpath() for multiple pardirs (fixes issue #6975). 2013-02-18 12:21:30 +02:00
Serhiy Storchaka 467393dff5 Fix posixpath.realpath() for multiple pardirs (fixes issue #6975). 2013-02-18 12:21:04 +02:00
Serhiy Storchaka f2619236eb Issue #6975: os.path.realpath() now correctly resolves multiple nested symlinks on POSIX platforms. 2013-02-10 12:24:06 +02:00
Serhiy Storchaka d83c82440b Issue #6975: os.path.realpath() now correctly resolves multiple nested symlinks on POSIX platforms. 2013-02-10 12:23:10 +02:00
Serhiy Storchaka df32691e6f Issue #6975: os.path.realpath() now correctly resolves multiple nested symlinks on POSIX platforms. 2013-02-10 12:22:07 +02:00
Brian Curtin 490b32a397 Fix #11939. Set st_dev attribute on Windows to simplify os.path.samefile.
By setting the st_dev attribute, we can then remove some Windows-specific
code and move os.path.samefile/sameopenfile/samestat to Lib/genericpath.py
so all platforms share the same implementation.
2012-12-26 07:03:03 -06:00
Andrew Svetlov ad28c7f9da Issue #16706: get rid of os.error 2012-12-18 22:02:39 +02:00
R David Murray 779b63d005 Merge #15342: Add clarifying sentence to posixpath.join docstring.
This sentence appears as a clarifying note in the HTML docs, and seems
worth having in the docstring since it covers a very common use case
that isn't otherwise obvious.  Thanks to Yongzhi Pan for the suggestion.
2012-07-21 14:34:51 -04:00
R David Murray e3de175a5e #15342: Add clarifying sentence to posixpath.join docstring.
This sentence appears as a clarifying note in the HTML docs, and seems
worth having in the docstring since it covers a very common use case
that isn't otherwise obvious.  Thanks to Yongzhi Pan for the suggestion.
2012-07-21 14:33:56 -04:00
Hynek Schlawack 1815191f17 #15377: Make posixpath.join() more strict when checking for str/bytes mix
Based on a patch by Nick Coghlan.
2012-07-17 13:10:15 +02:00
Hynek Schlawack c5a4566922 #15377: Make posixpath.join() more strict when checking for str/bytes mix
Based on a patch by Nick Coghlan.
2012-07-17 13:05:43 +02:00
Hynek Schlawack 9ac4d8808f #15180: Clarify posixpath.join() error message when mixing str & bytes 2012-07-15 16:46:23 +02:00
Hynek Schlawack 4774946c3b #15180: Clarify posixpath.join() error message when mixing str & bytes 2012-07-15 16:21:30 +02:00
Jesus Cea 7f0d88860f Closes #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/' 2012-05-10 05:10:50 +02:00
Hirokazu Yamamoto b08820ad40 Issue #5117: Case normalization was needed on ntpath.relpath(). And
fixed root directory issue on posixpath.relpath(). (Ported working fixes
from ntpath)
2010-10-18 12:13:18 +00:00
Victor Stinner 16004ace5b Use os.fsencode() to support surrogates 2010-09-29 16:59:18 +00:00
Victor Stinner e797c16f84 Issue #767645: Set os.path.supports_unicode_filenames to True in posixpath
Previous commit changed macpath but macpath is not used anymore as os.path
2010-09-17 23:34:26 +00:00
Georg Brandl e6c5950af0 #5551: symbolic links never can be mount points. Fixes the fix for #1713. 2010-08-01 15:30:56 +00:00
Ezio Melotti 5a3ef5b22a #9018: os.path.normcase() now raises a TypeError if the argument is not str or bytes. 2010-06-25 10:56:11 +00:00