Rob Shearman : ntdll: The impersonation level in NtDuplicateToken should be taken from the SecurityQualityOfService member of ObjectAttributes if present .

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jul 13 08:30:10 CDT 2007


Module: wine
Branch: master
Commit: 1cd222b451627e2a3dab50c91eac52994a103428
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1cd222b451627e2a3dab50c91eac52994a103428

Author: Rob Shearman <rob at codeweavers.com>
Date:   Thu Jul 12 15:32:00 2007 +0100

ntdll: The impersonation level in NtDuplicateToken should be taken from the SecurityQualityOfService member of ObjectAttributes if present.

---

 dlls/ntdll/nt.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index a303dcf..27a18ef 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -61,6 +61,16 @@ NTSTATUS WINAPI NtDuplicateToken(
         ImpersonationLevel, TokenType, NewToken);
         dump_ObjectAttributes(ObjectAttributes);
 
+    if (ObjectAttributes && ObjectAttributes->SecurityQualityOfService)
+    {
+        SECURITY_QUALITY_OF_SERVICE *SecurityQOS = ObjectAttributes->SecurityQualityOfService;
+        TRACE("ObjectAttributes->SecurityQualityOfService = {%d, %d, %d, %s}\n",
+            SecurityQOS->Length, SecurityQOS->ImpersonationLevel,
+            SecurityQOS->ContextTrackingMode,
+            SecurityQOS->EffectiveOnly ? "TRUE" : "FALSE");
+        ImpersonationLevel = SecurityQOS->ImpersonationLevel;
+    }
+
     SERVER_START_REQ( duplicate_token )
     {
         req->handle              = ExistingToken;




More information about the wine-cvs mailing list