From e576c9e952f5ad49ec3a2021d1aacbbb45cb6c36 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 25 Jan 2020 10:17:45 +0100 Subject: [PATCH] Kernel: Clear ESI and EDI on syscall entry Since these are not part of the system call convention, we don't care what userspace had in there. Might as well scrub it before entering the kernel. I would scrub EBP too, but that breaks the comfy kernel-thru-userspace stack traces we currently get. It can be done with some effort. --- Kernel/Syscall.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Kernel/Syscall.cpp b/Kernel/Syscall.cpp index a0d297e96e..1fc0faea38 100644 --- a/Kernel/Syscall.cpp +++ b/Kernel/Syscall.cpp @@ -48,6 +48,8 @@ asm( " mov %ax, %ds\n" " mov %ax, %es\n" " cld\n" + " xor %esi, %esi\n" + " xor %edi, %edi\n" " call syscall_handler\n" " add $0x4, %esp\n" " popl %gs\n"