mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 09:00:22 +00:00
b86443f0e1
When doing the last unref() on a listed-ref-counted object, we keep the list locked while mutating the ref count. The destructor itself is invoked after unlocking the list. This was racy with weakable classes, since their weak pointer factory still pointed to the object after we'd decided to destroy it. That opened a small time window where someone could try to strong-ref a weak pointer to an object after it was removed from the list, but just before the destructor got invoked. This patch closes the race window by explicitly revoking all weak pointers while the list is locked. |
||
---|---|---|
.. | ||
ConsoleManagement.cpp | ||
ConsoleManagement.h | ||
MasterPTY.cpp | ||
MasterPTY.h | ||
PTYMultiplexer.cpp | ||
PTYMultiplexer.h | ||
SlavePTY.cpp | ||
SlavePTY.h | ||
TTY.cpp | ||
TTY.h | ||
VirtualConsole.cpp | ||
VirtualConsole.h |