summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/Swap/DiskSwap.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-10-19 20:09:25 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-10-19 20:09:33 +0200
commite2ce7d7a1b37824b6939c68a931e0f6e537d760a (patch)
treeefc14753a7d9090a0d4367d753900dbaa8cfcbea /dev/kernel/src/Swap/DiskSwap.cc
parent974d5eae785025facb2c0037c4ec3aaca1da7b20 (diff)
fix: kernel: Fix memory leak in DiskSwap.cc
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/Swap/DiskSwap.cc')
-rw-r--r--dev/kernel/src/Swap/DiskSwap.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/dev/kernel/src/Swap/DiskSwap.cc b/dev/kernel/src/Swap/DiskSwap.cc
index b9cfaf77..99efb2c0 100644
--- a/dev/kernel/src/Swap/DiskSwap.cc
+++ b/dev/kernel/src/Swap/DiskSwap.cc
@@ -54,7 +54,10 @@ SWAP_DISK_HEADER* DiskSwapInterface::Read(const Char* fork_name, SizeT fork_name
VoidPtr blob = file.Read(fork_name, sizeof(SWAP_DISK_HEADER) + data_len);
- if (!blob || ((SWAP_DISK_HEADER*)blob)->fMagic != kSwapDiskHeaderMagic) return nullptr;
+ if (!blob || ((SWAP_DISK_HEADER*) blob)->fMagic != kSwapDiskHeaderMagic) {
+ if (blob) mm_free_ptr(blob);
+ return nullptr;
+ }
return reinterpret_cast<SWAP_DISK_HEADER*>(blob);
}