From ba1db571987c65672d9c06789e9852313ed2412a Mon Sep 17 00:00:00 2001 From: Barney Gale Date: Fri, 9 Apr 2021 22:28:15 +0100 Subject: bpo-39899: Don't double-check directory name if we're requesting the current user's home directory in ntpath.expanduser() (GH-25277) --- Lib/ntpath.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'Lib/ntpath.py') diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 421db50a3b7..5ae8079074c 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): -- cgit v1.2.3