Fix a possible double free in StopWatch::Refresh.
The lv_obj_del is called on btnStopLap when transitioning to the initial state, however the variable isn't then set to null. A subsequent call to Refresh would attempt to delete the already freed object. This could be triggered by stopping the stop watch, then pressing the physical button on the watch. Fixes https://github.com/JF002/InfiniTime/issues/315
This commit is contained in:
parent
e3ead332b9
commit
3a938236d4
1 changed files with 2 additions and 1 deletions
|
@ -115,8 +115,9 @@ bool StopWatch::Refresh() {
|
||||||
// Init state when an user first opens the app
|
// Init state when an user first opens the app
|
||||||
// and when a stop/reset button is pressed
|
// and when a stop/reset button is pressed
|
||||||
case States::Init: {
|
case States::Init: {
|
||||||
if (btnStopLap) {
|
if (btnStopLap != nullptr) {
|
||||||
lv_obj_del(btnStopLap);
|
lv_obj_del(btnStopLap);
|
||||||
|
btnStopLap = nullptr;
|
||||||
}
|
}
|
||||||
// The initial default value
|
// The initial default value
|
||||||
lv_label_set_text(time, "00:00");
|
lv_label_set_text(time, "00:00");
|
||||||
|
|
Loading…
Reference in a new issue