MCPcopy
hub / github.com/wavetermdev/waveterm / ExpandHomeDir

Function ExpandHomeDir

pkg/wavebase/wavebase.go:150–164  ·  view source on GitHub ↗
(pathStr string)

Source from the content-addressed store, hash-verified

148}
149
150func ExpandHomeDir(pathStr string) (string, error) {
151 if pathStr != "~" && !strings.HasPrefix(pathStr, "~/") && (!strings.HasPrefix(pathStr, `~\`) || runtime.GOOS != "windows") {
152 return filepath.Clean(pathStr), nil
153 }
154 homeDir := GetHomeDir()
155 if pathStr == "~" {
156 return homeDir, nil
157 }
158 expandedPath := filepath.Clean(filepath.Join(homeDir, pathStr[2:]))
159 absPath, err := filepath.Abs(filepath.Join(homeDir, expandedPath))
160 if err != nil || !strings.HasPrefix(absPath, homeDir) {
161 return "", fmt.Errorf("potential path traversal detected for path %s", pathStr)
162 }
163 return expandedPath, nil
164}
165
166func ExpandHomeDirSafe(pathStr string) string {
167 path, _ := ExpandHomeDir(pathStr)

Callers 15

ConnServerInitCommandMethod · 0.92
getWshPathMethod · 0.92
createPublicKeyCallbackFunction · 0.92
createHostKeyCallbackFunction · 0.92
findSshConfigKeywordsFunction · 0.92
resolveFileQueryFunction · 0.92

Calls 2

GetHomeDirFunction · 0.70
CleanMethod · 0.45

Tested by

no test coverage detected