Module: wine Branch: master Commit: 3a33ff7df9acf1b4d2a1fb80db9468807dbe9c4b URL: http://source.winehq.org/git/wine.git/?a=commit;h=3a33ff7df9acf1b4d2a1fb80db...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Jun 16 13:28:00 2009 +0200
advapi32: Fix self-relative security descriptor creation for 64-bit.
---
dlls/advapi32/security.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c index 0aa92ce..773a839 100644 --- a/dlls/advapi32/security.c +++ b/dlls/advapi32/security.c @@ -54,7 +54,7 @@ static BYTE ParseAceStringType(LPCWSTR* StringAcl); static DWORD ParseAceStringRights(LPCWSTR* StringAcl); static BOOL ParseStringSecurityDescriptorToSecurityDescriptor( LPCWSTR StringSecurityDescriptor, - SECURITY_DESCRIPTOR* SecurityDescriptor, + SECURITY_DESCRIPTOR_RELATIVE* SecurityDescriptor, LPDWORD cBytes); static DWORD ParseAclStringFlags(LPCWSTR* StringAcl);
@@ -4060,7 +4060,7 @@ lerr: */ static BOOL ParseStringSecurityDescriptorToSecurityDescriptor( LPCWSTR StringSecurityDescriptor, - SECURITY_DESCRIPTOR* SecurityDescriptor, + SECURITY_DESCRIPTOR_RELATIVE* SecurityDescriptor, LPDWORD cBytes) { BOOL bret = FALSE; @@ -4073,7 +4073,7 @@ static BOOL ParseStringSecurityDescriptorToSecurityDescriptor( *cBytes = sizeof(SECURITY_DESCRIPTOR);
if (SecurityDescriptor) - lpNext = ((LPBYTE) SecurityDescriptor) + sizeof(SECURITY_DESCRIPTOR); + lpNext = (LPBYTE)(SecurityDescriptor + 1);
while (*StringSecurityDescriptor) { @@ -4111,7 +4111,7 @@ static BOOL ParseStringSecurityDescriptorToSecurityDescriptor(
if (SecurityDescriptor) { - SecurityDescriptor->Owner = (PSID)(lpNext - (LPBYTE)SecurityDescriptor); + SecurityDescriptor->Owner = lpNext - (LPBYTE)SecurityDescriptor; lpNext += bytes; /* Advance to next token */ }
@@ -4129,7 +4129,7 @@ static BOOL ParseStringSecurityDescriptorToSecurityDescriptor(
if (SecurityDescriptor) { - SecurityDescriptor->Group = (PSID)(lpNext - (LPBYTE)SecurityDescriptor); + SecurityDescriptor->Group = lpNext - (LPBYTE)SecurityDescriptor; lpNext += bytes; /* Advance to next token */ }
@@ -4149,7 +4149,7 @@ static BOOL ParseStringSecurityDescriptorToSecurityDescriptor( if (SecurityDescriptor) { SecurityDescriptor->Control |= SE_DACL_PRESENT | flags; - SecurityDescriptor->Dacl = (PACL)(lpNext - (LPBYTE)SecurityDescriptor); + SecurityDescriptor->Dacl = lpNext - (LPBYTE)SecurityDescriptor; lpNext += bytes; /* Advance to next token */ }
@@ -4169,7 +4169,7 @@ static BOOL ParseStringSecurityDescriptorToSecurityDescriptor( if (SecurityDescriptor) { SecurityDescriptor->Control |= SE_SACL_PRESENT | flags; - SecurityDescriptor->Sacl = (PACL)(lpNext - (LPBYTE)SecurityDescriptor); + SecurityDescriptor->Sacl = lpNext - (LPBYTE)SecurityDescriptor; lpNext += bytes; /* Advance to next token */ }
@@ -4265,7 +4265,7 @@ BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW( psd->Control |= SE_SELF_RELATIVE;
if (!ParseStringSecurityDescriptorToSecurityDescriptor(StringSecurityDescriptor, - psd, &cBytes)) + (SECURITY_DESCRIPTOR_RELATIVE *)psd, &cBytes)) { LocalFree(psd); goto lend;