local: continue listing files/folders when a circular symlink is detected
Before this change a circular symlink would cause rclone to error out from the listings. After this change rclone will skip a circular symlink and carry on the listing, producing an error at the end. Fixes #4743
This commit is contained in:
parent
2708a7569e
commit
95d0410baa
3 changed files with 41 additions and 2 deletions
|
@ -456,8 +456,8 @@ func (f *Fs) List(ctx context.Context, dir string) (entries fs.DirEntries, err e
|
|||
if f.opt.FollowSymlinks && (mode&os.ModeSymlink) != 0 {
|
||||
localPath := filepath.Join(fsDirPath, name)
|
||||
fi, err = os.Stat(localPath)
|
||||
if os.IsNotExist(err) {
|
||||
// Skip bad symlinks
|
||||
if os.IsNotExist(err) || isCircularSymlinkError(err) {
|
||||
// Skip bad symlinks and circular symlinks
|
||||
err = fserrors.NoRetryError(errors.Wrap(err, "symlink"))
|
||||
fs.Errorf(newRemote, "Listing error: %v", err)
|
||||
err = accounting.Stats(ctx).Error(err)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue