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
Notes: sideshowbarker 2024-07-19 10:23:56 +09:00

View File

@ -1,6 +1,7 @@
#include <Kernel/Arch/i386/CPU.h>
#include <Kernel/Process.h>
#include <Kernel/ProcessTracer.h>
#include <Kernel/Random.h>
#include <Kernel/Syscall.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,
// 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(""
: "=m"(*ptr));