diff options
| author | Aman Gupta <aman@tmm1.net> | 2020-09-04 16:07:12 -0700 |
|---|---|---|
| committer | Alex Brainman <alex.brainman@gmail.com> | 2021-03-25 08:43:17 +0000 |
| commit | 402d784b8fc0a7914955eb168ea288338e2025ff (patch) | |
| tree | 431deea8f75957ef78182a11d787b63888dba2a8 /src/path/filepath/path.go | |
| parent | dec3d00b28657ce9e2fe725c858a46c3dd3fd594 (diff) | |
| download | go-402d784b8fc0a7914955eb168ea288338e2025ff.tar.xz | |
path/filepath: make Rel handle Windows UNC share
Fixes #41230
Change-Id: Iea15e4ae6d56328333fd22de5d78dfcad78ef1bc
Reviewed-on: https://go-review.googlesource.com/c/go/+/253197
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Trust: Alex Brainman <alex.brainman@gmail.com>
Trust: Emmanuel Odeke <emmanuel@orijtech.com>
Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/path/filepath/path.go')
| -rw-r--r-- | src/path/filepath/path.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/path/filepath/path.go b/src/path/filepath/path.go index 2e7b439355..28b30b1ae7 100644 --- a/src/path/filepath/path.go +++ b/src/path/filepath/path.go @@ -275,7 +275,11 @@ func Rel(basepath, targpath string) (string, error) { targ = targ[len(targVol):] if base == "." { base = "" + } else if base == "" && volumeNameLen(baseVol) > 2 /* isUNC */ { + // Treat any targetpath matching `\\host\share` basepath as absolute path. + base = string(Separator) } + // Can't use IsAbs - `\a` and `a` are both relative in Windows. baseSlashed := len(base) > 0 && base[0] == Separator targSlashed := len(targ) > 0 && targ[0] == Separator |
