mirror of https://github.com/pkg/sftp.git
				
				
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			459 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			459 B
		
	
	
	
		
			Go
		
	
	
	
| package sftp
 | |
| 
 | |
| import (
 | |
| 	"path"
 | |
| 	"path/filepath"
 | |
| )
 | |
| 
 | |
| func (s *Server) toLocalPath(p string) string {
 | |
| 	if s.workDir != "" && !path.IsAbs(p) {
 | |
| 		p = path.Join(s.workDir, p)
 | |
| 	}
 | |
| 
 | |
| 	lp := filepath.FromSlash(p)
 | |
| 
 | |
| 	if path.IsAbs(p) {
 | |
| 		tmp := lp[1:]
 | |
| 
 | |
| 		if filepath.IsAbs(tmp) {
 | |
| 			// If the FromSlash without any starting slashes is absolute,
 | |
| 			// then we have a filepath encoded with a prefix '/'.
 | |
| 			// e.g. "/#s/boot" to "#s/boot"
 | |
| 			return tmp
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return lp
 | |
| }
 |