osfs: improve isSubDir check

This commit is contained in:
Nicola Murino
2020-09-21 19:32:33 +02:00
parent a550d082a3
commit bf708cb8bc
2 changed files with 18 additions and 1 deletions

View File

@@ -413,7 +413,15 @@ func (fs *OsFs) isSubDir(sub, rootPath string) error {
fsLog(fs, logger.LevelWarn, "invalid root path %#v: %v", rootPath, err)
return err
}
if !strings.HasPrefix(sub, parent) {
if parent == sub {
return nil
}
if len(sub) < len(parent) {
err = fmt.Errorf("path %#v is not inside: %#v", sub, parent)
fsLog(fs, logger.LevelWarn, "error: %v ", err)
return err
}
if !strings.HasPrefix(sub, parent+string(os.PathSeparator)) {
err = fmt.Errorf("path %#v is not inside: %#v", sub, parent)
fsLog(fs, logger.LevelWarn, "error: %v ", err)
return err