From 281cb14d20285962fe61fb4d3c06009faf3bb444 Mon Sep 17 00:00:00 2001
From: Anon <git@anonweb.de>
Date: Sun, 13 Aug 2023 12:52:11 +0200
Subject: [PATCH] py/fil3s: handle os.listdir() errors

---
 python_payload/apps/fil3s/browser.py | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/python_payload/apps/fil3s/browser.py b/python_payload/apps/fil3s/browser.py
index e41b6eb36e..682c8b74b7 100644
--- a/python_payload/apps/fil3s/browser.py
+++ b/python_payload/apps/fil3s/browser.py
@@ -117,11 +117,18 @@ class Browser(ActionView):
     def _select(self) -> None:
         name = self.dir_entries[self.current_pos][0]
 
-        if self._is_dir(self.path + name):
-            self._change_path(self.path + name + "/")
-        else:
-            self.update_path(self.path + name)
-            self.navigate("reader")
+        old_path = self.path
+        new_path = self.path + name
+        try:
+            if self._is_dir(new_path):
+                self._change_path(new_path + "/")
+            else:
+                self.update_path(self.path + name)
+                self.navigate("reader")
+        except Exception as e:
+            # TODO: Create error view
+            print(f"Failed to open {new_path}: {e}")
+            self._change_path(old_path)
 
     def _up(self) -> None:
         if not self.up_enabled or len(self.path) <= 1:
-- 
GitLab