mirror of
https://github.com/RGBCube/serenity
synced 2025-07-23 13:17:36 +00:00
Kernel: Use get_fast_random() for the random syscall stack offset
This commit is contained in:
parent
9026598999
commit
f081990717
1 changed files with 2 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
#include <Kernel/Arch/i386/CPU.h>
|
#include <Kernel/Arch/i386/CPU.h>
|
||||||
#include <Kernel/Process.h>
|
#include <Kernel/Process.h>
|
||||||
#include <Kernel/ProcessTracer.h>
|
#include <Kernel/ProcessTracer.h>
|
||||||
|
#include <Kernel/Random.h>
|
||||||
#include <Kernel/Syscall.h>
|
#include <Kernel/Syscall.h>
|
||||||
#include <Kernel/VM/MemoryManager.h>
|
#include <Kernel/VM/MemoryManager.h>
|
||||||
|
|
||||||
|
@ -94,7 +95,7 @@ void syscall_handler(RegisterDump regs)
|
||||||
{
|
{
|
||||||
// Apply a random offset in the range 0-255 to the stack pointer,
|
// Apply a random offset in the range 0-255 to the stack pointer,
|
||||||
// to make kernel stacks a bit less deterministic.
|
// to make kernel stacks a bit less deterministic.
|
||||||
auto* ptr = (char*)__builtin_alloca(read_tsc() & 0xff);
|
auto* ptr = (char*)__builtin_alloca(get_fast_random<u8>());
|
||||||
asm volatile(""
|
asm volatile(""
|
||||||
: "=m"(*ptr));
|
: "=m"(*ptr));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue