package api import ( "errors" "path/filepath" "strings" ) func toHostPath(containerRoot, hostRoot, containerPath string) (string, error) { if !filepath.IsAbs(containerRoot) || !filepath.IsAbs(hostRoot) || !filepath.IsAbs(containerPath) { return "", errors.New("absolute storage paths required") } rel, err := filepath.Rel(containerRoot, containerPath) if err != nil || rel == ".." || strings.HasPrefix(rel, ".."+string(filepath.Separator)) { return "", errors.New("storage path escapes root") } return filepath.Join(hostRoot, rel), nil }