From b958496a5b7da6742cb94c8ffd349b75a58d8133 Mon Sep 17 00:00:00 2001 From: joshuaboud Date: Mon, 21 Jun 2021 12:01:55 -0300 Subject: [PATCH] set inaccessible in stat if lstat fails --- navigator/scripts/ls.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/navigator/scripts/ls.py b/navigator/scripts/ls.py index ba1dbe8..91e6ef0 100755 --- a/navigator/scripts/ls.py +++ b/navigator/scripts/ls.py @@ -25,7 +25,27 @@ from pwd import getpwuid from grp import getgrgid def get_stat(full_path, filename = '/'): - stats = os.lstat(full_path) + try: + stats = os.lstat(full_path) + except OSError: + return { + "filename": filename, + "isdir": False, + "link-target": "", + "stat": { + "inaccessible": True, + "mode": 0, + "mode-str": "?", + "uid": 0, + "owner": "?", + "gid": 0, + "group": "?", + "size": 0, + "atime": 0, + "mtime": 0, + "ctime": 0 + } + } isdir = False try: isdir = S_ISDIR(os.stat(full_path).st_mode) @@ -45,6 +65,7 @@ def get_stat(full_path, filename = '/'): except: pass response = { + "inaccessible": False, "filename": filename, "isdir": isdir, "link-target": link_target,