[Python-checkins] bpo-39899: Don't double-check directory name if we're requesting the current user's home directory in ntpath.expanduser() (GH-25277)
zooba
webhook-mailer at python.org
Fri Apr 9 17:28:25 EDT 2021
https://github.com/python/cpython/commit/ba1db571987c65672d9c06789e9852313ed2412a
commit: ba1db571987c65672d9c06789e9852313ed2412a
branch: master
author: Barney Gale <barney.gale at gmail.com>
committer: zooba <steve.dower at microsoft.com>
date: 2021年04月09日T22:28:15+01:00
summary:
bpo-39899: Don't double-check directory name if we're requesting the current user's home directory in ntpath.expanduser() (GH-25277)
files:
M Lib/ntpath.py
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index 421db50a3b7f5..5ae8079074cd9 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -313,18 +313,19 @@ def expanduser(path):
userhome = join(drive, os.environ['HOMEPATH'])
if i != 1: #~user
- # Try to guess user home directory. By default all users directories
- # are located in the same place and are named by corresponding
- # usernames. If current user home directory points to nonstandard
- # place, this guess is likely wrong, and so we bail out.
- current_user = os.environ.get('USERNAME')
- if current_user != basename(userhome):
- return path
-
target_user = path[1:i]
if isinstance(target_user, bytes):
target_user = os.fsdecode(target_user)
+ current_user = os.environ.get('USERNAME')
+
if target_user != current_user:
+ # Try to guess user home directory. By default all user
+ # profile directories are located in the same place and are
+ # named by corresponding usernames. If userhome isn't a
+ # normal profile directory, this guess is likely wrong,
+ # so we bail out.
+ if current_user != basename(userhome):
+ return path
userhome = join(dirname(userhome), target_user)
if isinstance(path, bytes):
More information about the Python-checkins
mailing list