| 
					
				 | 
			
			
				@@ -120,8 +120,13 @@ class RepositoryServer:  # pragma: no cover 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             path = path[1:] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         path = os.path.realpath(os.path.expanduser(path)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if self.restrict_to_paths: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # if --restrict-to-path P is given, we make sure that we only operate in/below path P. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # for the prefix check, it is important that the compared pathes both have trailing slashes, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # so that a path /foobar will NOT be accepted with --restrict-to-path /foo option. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            path_with_sep = os.path.join(path, '')  # make sure there is a trailing slash (os.sep) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for restrict_to_path in self.restrict_to_paths: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if path.startswith(os.path.realpath(restrict_to_path)): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                restrict_to_path_with_sep = os.path.join(os.path.realpath(restrict_to_path), '')  # trailing slash 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if path_with_sep.startswith(restrict_to_path_with_sep): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 raise PathNotAllowed(path) 
			 |