mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	Fixed #5111 -- Set svn:eol-style to 'native' on files that didn't have it
already. git-svn-id: http://code.djangoproject.com/svn/django/trunk@5876 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -1,23 +1,23 @@ | ||||
| from os.path import join, normcase, abspath, sep | ||||
|  | ||||
| def safe_join(base, *paths): | ||||
|     """ | ||||
|     Joins one or more path components to the base path component intelligently. | ||||
|     Returns a normalized, absolute version of the final path. | ||||
|  | ||||
|     The final path must be located inside of the base path component (otherwise | ||||
|     a ValueError is raised). | ||||
|     """ | ||||
|     # We need to use normcase to ensure we don't false-negative on case | ||||
|     # insensitive operating systems (like Windows). | ||||
|     final_path = normcase(abspath(join(base, *paths))) | ||||
|     base_path = normcase(abspath(base)) | ||||
|     base_path_len = len(base_path) | ||||
|     # Ensure final_path starts with base_path and that the next character after | ||||
|     # the final path is os.sep (or nothing, in which case final_path must be | ||||
|     # equal to base_path). | ||||
|     if not final_path.startswith(base_path) \ | ||||
|        or final_path[base_path_len:base_path_len+1] not in ('', sep): | ||||
|         raise ValueError('the joined path is located outside of the base path' | ||||
|                          ' component') | ||||
|     return final_path | ||||
| from os.path import join, normcase, abspath, sep | ||||
|  | ||||
| def safe_join(base, *paths): | ||||
|     """ | ||||
|     Joins one or more path components to the base path component intelligently. | ||||
|     Returns a normalized, absolute version of the final path. | ||||
|  | ||||
|     The final path must be located inside of the base path component (otherwise | ||||
|     a ValueError is raised). | ||||
|     """ | ||||
|     # We need to use normcase to ensure we don't false-negative on case | ||||
|     # insensitive operating systems (like Windows). | ||||
|     final_path = normcase(abspath(join(base, *paths))) | ||||
|     base_path = normcase(abspath(base)) | ||||
|     base_path_len = len(base_path) | ||||
|     # Ensure final_path starts with base_path and that the next character after | ||||
|     # the final path is os.sep (or nothing, in which case final_path must be | ||||
|     # equal to base_path). | ||||
|     if not final_path.startswith(base_path) \ | ||||
|        or final_path[base_path_len:base_path_len+1] not in ('', sep): | ||||
|         raise ValueError('the joined path is located outside of the base path' | ||||
|                          ' component') | ||||
|     return final_path | ||||
|   | ||||
		Reference in New Issue
	
	Block a user