Ver código fonte

local fs: fixed paths validation for some Windows specific edge cases

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
Nicola Murino 2 anos atrás
pai
commit
f13b901f2d
1 arquivos alterados com 4 adições e 0 exclusões
  1. 4 0
      internal/vfs/osfs.go

+ 4 - 0
internal/vfs/osfs.go

@@ -32,6 +32,7 @@ import (
 	"github.com/rs/xid"
 
 	"github.com/drakkan/sftpgo/v2/internal/logger"
+	"github.com/drakkan/sftpgo/v2/internal/util"
 )
 
 const (
@@ -406,6 +407,9 @@ func (fs *OsFs) findNonexistentDirs(filePath string) ([]string, error) {
 	for fs.IsNotExist(err) {
 		results = append(results, parent)
 		parent = filepath.Dir(parent)
+		if util.Contains(results, parent) {
+			break
+		}
 		_, err = os.Stat(parent)
 	}
 	if err != nil {