git.lucas.co / cce-system-interface
system settings
git clone https://git.lucas.co/cce-system-interface.git

commit2839e6d6677267927687456d5f05ac63da684d7f
parent30b8d1721f
authorLucas Galante <[email protected]>
date2026-06-25 09:47
fix: resolve Use-After-Free of page_sec_containers parent pointers by clearing children in-place instead of dropping containers

 src/renderer.rs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/renderer.rs b/src/renderer.rs
index ea7e7e4..1a8d7d2 100644
--- a/src/renderer.rs
+++ b/src/renderer.rs
@@ -19,7 +19,10 @@ impl SystemInterface {
             page.clear_children(&mut self.ui_context);
         }
         let page_root = &mut self.pages[page_idx];
-        self.page_sec_containers.clear();
+        for c in &mut self.page_sec_containers {
+            c.clear_children(&mut self.ui_context);
+            c.set_parent(None, &mut self.ui_context);
+        }
 
         // Clear all widgets' hierarchy links
         self.app.processes.services_search_box.clear_children(&mut self.ui_context); self.app.processes.services_search_box.set_parent(None, &mut self.ui_context);