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
Miss Islington (bot)
0e2c7839bd
[3.10] bpo-44817: Ignore additional errors in ntpath.realpath (GH-27574) (GH-100023)
...
(cherry picked from commit 124ecd6576
)
Co-authored-by: Michael Förderer <michael.foerderer@gmx.de>
2022-12-08 01:02:28 -08:00
Steve Dower
9041b00283
bpo-42658: Use LCMapStringEx in ntpath.normcase to match OS behaviour for case-folding (GH-93674)
...
Co-authored-by: AN Long <aisk@users.noreply.github.com>
2022-06-10 17:36:02 +01: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
Barney Gale
ba1db57198
bpo-39899: Don't double-check directory name if we're requesting the current user's home directory in ntpath.expanduser() (GH-25277)
2021-04-09 22:28:15 +01:00
Barney Gale
3f3d82b848
bpo-39899: os.path.expanduser(): don't guess other Windows users' home directories if the basename of the current user's home directory doesn't match their username. (GH-18841)
...
This makes `ntpath.expanduser()` match `pathlib.Path.expanduser()` in this regard, and is more in line with `posixpath.expanduser()`'s cautious approach.
Also remove the near-duplicate implementation of `expanduser()` in pathlib, and by doing so fix a bug where KeyError could be raised when expanding another user's home directory.
2021-04-07 23:50:13 +01:00
Steve Dower
abde52cd8e
bpo-38453: Ensure ntpath.realpath correctly resolves relative paths (GH-16967)
...
Ensure isabs() is always True for \\?\ prefixed paths
Avoid unnecessary usage of readlink() to avoid resolving broken links incorrectly
Ensure shutil tests run in test directory
2019-11-15 09:49:21 -08:00
Steve Dower
a0e3d27e4e
bpo-38355: Fix ntpath.realpath failing on sys.executable (GH-16551)
2019-10-03 08:31:03 -07:00
Steve Dower
89b8933bb5
bpo-38081: Add more non-fatal error codes for ntpath.realpath (GH-16156)
2019-09-16 15:25:11 +01:00
Steve Dower
92521fea5d
bpo-38081: Fixes ntpath.realpath('NUL') (GH-15899)
2019-09-11 10:48:36 +01:00
Steve Dower
06be2c7f35
bpo-9949: Call normpath() in realpath() and avoid unnecessary prefixes (GH-15369)
2019-08-21 16:45:02 -07:00
Steve Dower
75e064962e
bpo-9949: Enable symlink traversal for ntpath.realpath (GH-15287)
2019-08-21 13:43:06 -07: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
Anthony Sottile
25ec4a45dc
bpo-36264: Don't honor POSIX HOME in os.path.expanduser on Windows (GH-12282)
2019-03-12 08:39:57 -07:00
Tim Graham
d03b775781
bpo-31047: Fix ntpath.abspath to trim ending separator (GH-10082)
...
Regression in b0bf51b322
.
2018-10-25 11:26:37 -04: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
Franz Wöllert
d2e902e4fb
bpo-31047: Fix ntpath.abspath for invalid paths (GH-8544)
2018-07-29 13:47:09 +01:00
Serhiy Storchaka
3460198f6b
bpo-31802: Fix importing native path module before importing os. ( #4017 )
2018-01-07 17:54:31 +02:00
Serhiy Storchaka
9ed707eb4c
Issue #29197 : Removed deprecated function ntpath.splitunc().
2017-01-13 20:55:05 +02:00
Larry Hastings
10108a7b9a
Issue #27355 : Removed support for Windows CE. It was never finished,
...
and Windows CE is no longer a relevant platform for Python.
2016-09-05 15:11:23 -07: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
Martin Panter
6245cb3c01
Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc
...
This affects documentation, code comments, and a debugging messages.
2016-04-15 02:14:19 +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
b20f905f6d
Issue #23742 : ntpath.expandvars() no longer loses unbalanced single quotes.
2015-03-25 16:41:15 +02:00
Serhiy Storchaka
1b87ae0c91
Issue #23742 : ntpath.expandvars() no longer loses unbalanced single quotes.
2015-03-25 16:40:15 +02: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
8518b79a8d
Issue #15275 : Clean up and speed up the ntpath module.
2014-07-23 20:43:13 +03: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
Serhiy Storchaka
f5d2f22475
Issue #19456 : ntpath.join() now joins relative paths correctly when a drive
...
is present.
2014-01-27 23:16:28 +02:00
Serhiy Storchaka
c369c2c688
Issue #19456 : ntpath.join() now joins relative paths correctly when a drive
...
is present.
2014-01-27 23:15:14 +02:00
Serhiy Storchaka
cc83b0c8f6
Issue #19912 : Fixed numerous bugs in ntpath.splitunc().
...
* splitunc() no more return illegal result for paths with redundant slashes.
* splitunc() now correctly processes the 'İ' character
(U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).
* Deprecation warnings now emitted for every use of splitunc().
* Added tests for splitunc().
2013-12-16 15:14:19 +02:00
Serhiy Storchaka
593568bf47
Issue #19912 : Fixed numerous bugs in ntpath.splitunc().
...
* splitunc() no more return illegal result for paths with redundant slashes.
* splitunc() now correctly processes the 'İ' character
(U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).
* Deprecation warnings now emitted for every use of splitunc().
* Added tests for splitunc().
2013-12-16 15:13:28 +02:00
Serhiy Storchaka
f5ad91c392
Issue #19911 : ntpath.splitdrive() now correctly processes the 'İ' character
...
(U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).
2013-12-16 14:36:10 +02:00
Serhiy Storchaka
3d7e11520e
Issue #19911 : ntpath.splitdrive() now correctly processes the 'İ' character
...
(U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).
2013-12-16 14:34:55 +02:00
Tim Golden
6b528067c5
Issue #9035 : os.path.ismount now recognises volumes mounted below
...
a drive root on Windows. Original patch by Atsuo Ishimoto.
2013-08-01 12:44:00 +01:00
Brett Cannon
cd171c8e92
Issue #18200 : Back out usage of ModuleNotFoundError (8d28d44f3a9a)
2013-07-04 17:43:24 -04:00
Brett Cannon
0a140668fa
Issue #18200 : Update the stdlib (except tests) to use
...
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Brian Curtin
ae57cec791
Fix #16788 . Add samestat to Lib/ntpath.py
2012-12-26 08:22:00 -06: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
2606a6f197
Issue #16719 : Get rid of WindowsError. Use OSError instead
...
Patch by Serhiy Storchaka.
2012-12-19 14:33:35 +02:00
Andrew Svetlov
ad28c7f9da
Issue #16706 : get rid of os.error
2012-12-18 22:02:39 +02:00
Jesus Cea
f1af705720
#16135 : Removal of OS/2 support (Remove OS2 and OS/2 references)
2012-10-05 02:48:46 +02:00
Brian Curtin
95d028fd18
Correction to 88e318166eaf - Issue #11583
...
Rather than wrapping the C _isdir function in a Python function,
just import the C _isdir function directly. Additionally, add in the
docstring which was left out.
2011-06-09 09:10:38 -05:00
Brian Curtin
9c669ccc77
Fix #11583 . Changed os.path.isdir to use GetFileAttributes instead of os.stat.
...
By changing to the Windows GetFileAttributes API in nt._isdir we can figure
out if the path is a directory without opening the file via os.stat. This has
the minor benefit of speeding up os.path.isdir by at least 2x for regular
files and 10-15x improvements were seen on symbolic links (which opened the
file multiple times during os.stat). Since os.path.isdir is used in
several places on interpreter startup, we get a minor speedup in startup time.
2011-06-08 18:17:18 -05:00
Ronald Oussoren
6355c16d36
ntpath.samefile fails to detect that "A.TXT" and "a.txt" refer to the same file on Windows XP.
...
Noticed while researching a buildbot failure due to a patch for issue #10684 .
2011-05-06 17:11:07 +02:00
Ezio Melotti
3b3499ba69
#11565 : Merge with 3.1.
2011-03-16 11:35:38 +02:00
Ezio Melotti
13925008dc
#11565 : Fix several typos. Patch by Piotr Kasprzyk.
2011-03-16 11:05:33 +02:00