diff --git a/backuptar/tar.go b/backuptar/tar.go index 96069b0..ad6fb9f 100644 --- a/backuptar/tar.go +++ b/backuptar/tar.go @@ -284,7 +284,7 @@ func WriteBackupStreamFromTarFile(w io.Writer, t *tar.Reader, hdr *tar.Header) ( if hdr.Typeflag == tar.TypeSymlink { _, isMountPoint := hdr.Winheaders[hdrMountPoint] rp := winio.ReparsePoint{ - Target: hdr.Linkname, + Target: filepath.FromSlash(hdr.Linkname), IsMountPoint: isMountPoint, } reparse := winio.EncodeReparsePoint(&rp) diff --git a/reparse.go b/reparse.go index 9425711..fc1ee4d 100644 --- a/reparse.go +++ b/reparse.go @@ -80,7 +80,7 @@ func EncodeReparsePoint(rp *ReparsePoint) []byte { var ntTarget string relative := false if strings.HasPrefix(rp.Target, `\\?\`) { - ntTarget = rp.Target + ntTarget = `\??\` + rp.Target[4:] } else if strings.HasPrefix(rp.Target, `\\`) { ntTarget = `\??\UNC\` + rp.Target[2:] } else if len(rp.Target) >= 2 && isDriveLetter(rp.Target[0]) && rp.Target[1] == ':' {