1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:57:44 +00:00

Kernel: Make Process a Weakable class.

Use this to fix a use-after-free in ~GraphicsBitmap(). We'd hit this when
the WindowServer was doing a deferred destruction of a WSWindow whose
backing store referred to a now-reaped Process.
This commit is contained in:
Andreas Kling 2019-01-31 07:02:40 +01:00
parent fc0b63ca3c
commit 2dc9c86bad
3 changed files with 5 additions and 4 deletions

View file

@ -12,6 +12,7 @@
#include <AK/AKString.h>
#include <AK/Vector.h>
#include <AK/WeakPtr.h>
#include <AK/Weakable.h>
#include <AK/Lock.h>
class FileDescriptor;
@ -45,7 +46,7 @@ struct DisplayInfo {
byte* framebuffer;
};
class Process : public InlineLinkedListNode<Process> {
class Process : public InlineLinkedListNode<Process>, public Weakable<Process> {
friend class InlineLinkedListNode<Process>;
friend class WSWindowManager; // FIXME: Make a better API for allocate_region().
friend class GraphicsBitmap; // FIXME: Make a better API for allocate_region().