mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									398bd27967
								
							
						
					
					
						commit
						f2f4555d82
					
				
					 4 changed files with 98 additions and 29 deletions
				
			
		|  | @ -246,7 +246,12 @@ def expanduser(path): | |||
|     if i == 1: | ||||
|         if 'HOME' not in os.environ: | ||||
|             import pwd | ||||
|             userhome = pwd.getpwuid(os.getuid()).pw_dir | ||||
|             try: | ||||
|                 userhome = pwd.getpwuid(os.getuid()).pw_dir | ||||
|             except KeyError: | ||||
|                 # bpo-10496: if the current user identifier doesn't exist in the | ||||
|                 # password database, return the path unchanged | ||||
|                 return path | ||||
|         else: | ||||
|             userhome = os.environ['HOME'] | ||||
|     else: | ||||
|  | @ -257,6 +262,8 @@ def expanduser(path): | |||
|         try: | ||||
|             pwent = pwd.getpwnam(name) | ||||
|         except KeyError: | ||||
|             # bpo-10496: if the user name from the path doesn't exist in the | ||||
|             # password database, return the path unchanged | ||||
|             return path | ||||
|         userhome = pwent.pw_dir | ||||
|     if isinstance(path, bytes): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Victor Stinner
						Victor Stinner