+1
−1
Loading
Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more
It was created protected by the running reactable's mutex, but accessed during WaitForUnregisteredReactable using the reactor's mutex. This meant we could get a double free where it was overwritten (and deleted) from Unregister and also set to nullptr (and deleted) from WaitForUnregisteredReactable. Change it to a shared_ptr, so it's not deleted until it goes out of scope for both. And save a copy locally in WaitForUnregisteredReactable so access is not racy either. Found during fuzzing. Test: new fuzzer I'm working on Change-Id: Id3d3159e41052ecd80bd644b2214b6692d1aebcc