https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6c154c06254218a5e9d8bd9f406e43c789cecea4

commit 6c154c06254218a5e9d8bd9f406e43c789cecea4
Author:     Timo Kreuzer <[email protected]>
AuthorDate: Sun Feb 4 20:07:17 2018 +0100
Commit:     Timo Kreuzer <[email protected]>
CommitDate: Thu Aug 16 16:32:49 2018 +0200

    [NTOS:SE] Fix SeSetSecurityDescriptorInfoEx to prevent pool corruption on 
x64
---
 ntoskrnl/se/sd.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/ntoskrnl/se/sd.c b/ntoskrnl/se/sd.c
index a6b082993f..ab10515e79 100644
--- a/ntoskrnl/se/sd.c
+++ b/ntoskrnl/se/sd.c
@@ -916,13 +916,9 @@ SeSetSecurityDescriptorInfoEx(
         return STATUS_INSUFFICIENT_RESOURCES;
     }
 
-    RtlCreateSecurityDescriptor(NewSd,
-                                SECURITY_DESCRIPTOR_REVISION1);
+    RtlCreateSecurityDescriptorRelative(NewSd, SECURITY_DESCRIPTOR_REVISION1);
 
-    /* We always build a self-relative descriptor */
-    NewSd->Control = Control | SE_SELF_RELATIVE;
-
-    Current = sizeof(SECURITY_DESCRIPTOR);
+    Current = sizeof(SECURITY_DESCRIPTOR_RELATIVE);
 
     if (OwnerLength != 0)
     {

Reply via email to