From 210cae27366b46890001249082994aef411f6dfe Mon Sep 17 00:00:00 2001 From: Arksine <9563098+Arksine@users.noreply.github.com> Date: Tue, 13 Apr 2021 15:20:19 -0400 Subject: [PATCH] file_manager: check for broken symlinks in "get_file_list()" Signed-off-by: Eric Callahan --- moonraker/components/file_manager.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/moonraker/components/file_manager.py b/moonraker/components/file_manager.py index 6923355..7834901 100644 --- a/moonraker/components/file_manager.py +++ b/moonraker/components/file_manager.py @@ -510,7 +510,10 @@ class FileManager: # Filter out directories that have already been visted. This # prevents infinite recrusion "followlinks" is set to True for dname in dir_names: - st = os.stat(os.path.join(dir_path, dname)) + full_path = os.path.join(dir_path, dname) + if not os.path.exists(full_path): + continue + st = os.stat(full_path) key = (st.st_dev, st.st_ino) if key not in visited_dirs: visited_dirs.add(key) @@ -527,6 +530,8 @@ class FileManager: except Exception: logging.exception("Error processing ufp file") continue + if not os.path.exists(full_path): + continue fname = full_path[len(path) + 1:] finfo = self._get_path_info(full_path) filelist[fname] = finfo