ladybird/Kernel/TTY
Andreas Kling b86443f0e1 Kernel: Lock weak pointer revocation during listed-ref-counted unref
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.
2022-01-08 16:31:14 +01:00
..
ConsoleManagement.cpp Kernel/Devices: Use try_create_device helper for ConsoleDevice 2021-09-17 01:02:48 +03:00
ConsoleManagement.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
MasterPTY.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
MasterPTY.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
PTYMultiplexer.cpp Kernel: Mark PTYMultiplexer init & parse_hex_digit as UNMAP_AFTER_INIT 2021-12-24 14:28:59 -08:00
PTYMultiplexer.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
SlavePTY.cpp Kernel: Lock weak pointer revocation during listed-ref-counted unref 2022-01-08 16:31:14 +01:00
SlavePTY.h Kernel: Make File::unref virtual 2021-12-29 15:46:14 +02:00
TTY.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
TTY.h Kernel: Make major and minor numbers to be DistinctNumerics 2021-12-23 23:02:39 +01:00
VirtualConsole.cpp Kernel: Tighten String-related includes 2021-12-30 14:16:03 +01:00
VirtualConsole.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00