https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1bfacf06f7c215f2ada4c7870519aceee1e90768

commit 1bfacf06f7c215f2ada4c7870519aceee1e90768
Author:     Timo Kreuzer <[email protected]>
AuthorDate: Tue May 15 14:07:12 2018 +0200
Commit:     Timo Kreuzer <[email protected]>
CommitDate: Sat Oct 31 14:23:16 2020 +0100

    [NTOS:KE:X64] Zero out volatiles when returning from a system call
---
 ntoskrnl/ke/amd64/trap.S | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/ntoskrnl/ke/amd64/trap.S b/ntoskrnl/ke/amd64/trap.S
index 8efcd81d9d8..9c3c085d2e7 100644
--- a/ntoskrnl/ke/amd64/trap.S
+++ b/ntoskrnl/ke/amd64/trap.S
@@ -824,6 +824,16 @@ IntsEnabled:
     /* Swap gs back to user */
     swapgs
 
+    ; Zero out volatiles
+    pxor xmm0, xmm0
+    pxor xmm1, xmm1
+    pxor xmm2, xmm2
+    pxor xmm3, xmm3
+    pxor xmm4, xmm4
+    pxor xmm5, xmm5
+    xor rdx, rdx
+    xor r10, r10
+
     /* return to user mode */
     .byte HEX(48) // REX prefix to return to long mode
     sysret

Reply via email to