diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-10-19 20:06:33 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-10-19 20:06:33 +0200 |
| commit | 974d5eae785025facb2c0037c4ec3aaca1da7b20 (patch) | |
| tree | d8f6cb9c132760601f3f6aeee2459017947aff25 /dev/kernel/src/Swap/DiskSwap.cc | |
| parent | 3d8a7b189d3deaaaab948fdb71ed7fedcc16e05c (diff) | |
feat: kernel: disk_swap and network improvements.
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.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/dev/kernel/src/Swap/DiskSwap.cc b/dev/kernel/src/Swap/DiskSwap.cc index 8578450c..b9cfaf77 100644 --- a/dev/kernel/src/Swap/DiskSwap.cc +++ b/dev/kernel/src/Swap/DiskSwap.cc @@ -8,6 +8,8 @@ #include <SwapKit/DiskSwap.h> namespace Kernel { +static constexpr UInt32 kSwapDiskHeaderMagic = 0x44535750; // 'DSWP' + /***********************************************************************************/ /// @brief Write memory chunk onto disk. /// @param fork_name The swap name to recognize this memory region. @@ -20,7 +22,7 @@ BOOL DiskSwapInterface::Write(const Char* fork_name, SizeT fork_name_len, SWAP_D if (*fork_name == 0) return NO; - if (!data) return NO; + if (!data || data->fMagic != kSwapDiskHeaderMagic) return NO; FileStream file(kSwapPageFilePath, kRestrictWRB); @@ -52,6 +54,8 @@ 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; + return reinterpret_cast<SWAP_DISK_HEADER*>(blob); } } // namespace Kernel |
