system settings
git clone https://git.lucas.co/cce-system-interface.git
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);