From 071c657a7f58fd3c5b58055d1c912272d5ef9859 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 19 Apr 2022 16:38:30 +0200 Subject: [PATCH] fix attempt at use-after-free When a control which is focused is destroyed out-of-order, it gets a notification while it's user data it destroyed but not NULL. --- radio/src/thirdparty/libopenui/src/window.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/radio/src/thirdparty/libopenui/src/window.cpp b/radio/src/thirdparty/libopenui/src/window.cpp index 8297b339b..1f0dd159b 100644 --- a/radio/src/thirdparty/libopenui/src/window.cpp +++ b/radio/src/thirdparty/libopenui/src/window.cpp @@ -195,6 +195,7 @@ Window::~Window() if (children.size() > 0) deleteChildren(); if (lvobj != nullptr) { + lv_obj_set_user_data(lvobj, nullptr); lv_obj_del(lvobj); lvobj = nullptr; } @@ -269,8 +270,8 @@ void Window::clearLvgl() if(window->lvobj != nullptr && window->lvobj->parent == lvobj) window->clearLvgl(); } -// lv_obj_set_user_data(lvobj, nullptr); + lv_obj_set_user_data(lvobj, nullptr); lvobj = nullptr; }