@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.
@peabee reported this in #1067 after upgrading from 3.4.4 to 3.5.0:
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 usesecure_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.