From 280815f158491910609bdb8c7c4e74fb574b6044 Mon Sep 17 00:00:00 2001 From: ed Date: Sat, 20 Sep 2025 10:05:29 +0000 Subject: [PATCH] ftp: fix unmapped root; closes #827 --- copyparty/ftpd.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/copyparty/ftpd.py b/copyparty/ftpd.py index 66f233c1..9c9e7ff4 100644 --- a/copyparty/ftpd.py +++ b/copyparty/ftpd.py @@ -279,6 +279,10 @@ class FtpFs(AbstractedFS): def chdir(self, path: str) -> None: nwd = join(self.cwd, path) vfs, rem = self.hub.asrv.vfs.get(nwd, self.uname, False, False) + if not vfs.realpath: + self.cwd = nwd + return + ap = vfs.canonical(rem) try: st = bos.stat(ap) @@ -288,12 +292,9 @@ class FtpFs(AbstractedFS): # returning 550 is library-default and suitable raise FSE("No such file or directory") - if vfs.realpath: - avfs = vfs.chk_ap(ap, st) - if not avfs: - raise FSE("Permission denied", 1) - else: - avfs = vfs + avfs = vfs.chk_ap(ap, st) + if not avfs: + raise FSE("Permission denied", 1) self.cwd = nwd