فهرست منبع

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.
Andreas Kling 5 سال پیش
والد
کامیت
e576c9e952
1فایلهای تغییر یافته به همراه2 افزوده شده و 0 حذف شده
  1. 2 0
      Kernel/Syscall.cpp

+ 2 - 0
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"