From: Barney Gale Date: Fri, 9 Apr 2021 21:28:15 +0000 (+0100) Subject: bpo-39899: Don't double-check directory name if we're requesting the current user... X-Git-Tag: v3.10.0b1~345 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ba1db571987c65672d9c06789e9852313ed2412a;p=thirdparty%2FPython%2Fcpython.git bpo-39899: Don't double-check directory name if we're requesting the current user's home directory in ntpath.expanduser() (GH-25277) --- diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 421db50a3b7f..5ae8079074cd 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):