Module: wine Branch: master Commit: 1cd222b451627e2a3dab50c91eac52994a103428 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1cd222b451627e2a3dab50c91e...
Author: Rob Shearman rob@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;