Skip to content

Sender-side ELOOP after upgrading to 3.5.0 #1087

Description

@steadytao

@peabee reported this in #1067 after upgrading from 3.4.4 to 3.5.0:

rsync: [sender] opendir "/mnt/home/My_Documents" failed: Too many levels of symbolic links (40)

Reverting to 3.4.4 reportedly fixes the transfer. The system is Puppy Linux using Slackware64 Current packages. It is not yet clear whether the failure depends on that setup. The command runs inside an application and has not been provided. Peabee says there are no symlinks inside the directory and most files are root:root with a few owned by spot:spot.

I am opening this separately because #1067 was closed after addressing @jb2170’s receiver-side error. #1074 added a diagnostic for an untrusted symlink rejected by ona_open(). It did not change the sender’s directory scan. In 3.5.0, that scan can use secure_opendir(), whose resolver rejects absolute symlink targets or relative targets that escape its anchor. That could explain this report. It has not been confirmed; having no symlinks inside the directory does not rule it out.

I will investigate the failing path and compare it against 3.4.4 before proposing a fix. Any change needs to retain the protection against symlinks redirecting a transfer outside its permitted root.

@peabee, could you provide the application name and the output of namei -l /mnt/home/My_Documents ? There is no need to post the whole directory tree.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions