1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 06:47:40 +00:00

Kernel: Use get_fast_random() for the random syscall stack offset

This commit is contained in:
Andreas Kling 2020-01-03 12:48:28 +01:00
parent 9026598999
commit f081990717

View file

@ -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));