From d0e23d4854abaee3e39fe4954b5c3d1620d0d5cb Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Sat, 27 Jan 2007 14:06:01 +0000 Subject: [PATCH] Make RtlEqualPrefixSid portable svn path=/trunk/; revision=25648 --- reactos/lib/rtl/sid.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/reactos/lib/rtl/sid.c b/reactos/lib/rtl/sid.c index 28fce407d64..88c660d1543 100644 --- a/reactos/lib/rtl/sid.c +++ b/reactos/lib/rtl/sid.c @@ -303,14 +303,22 @@ BOOLEAN NTAPI RtlEqualPrefixSid(IN PSID Sid1_, IN PSID Sid2_) { - PISID Sid1 = Sid1_; - PISID Sid2 = Sid2_; + PISID Sid1 = Sid1_; + PISID Sid2 = Sid2_; + SIZE_T SidLen; - PAGED_CODE_RTL(); + PAGED_CODE_RTL(); - return(Sid1->SubAuthorityCount == Sid2->SubAuthorityCount && - !RtlCompareMemory(Sid1, Sid2, - (Sid1->SubAuthorityCount - 1) * sizeof(DWORD) + 8)); + if (Sid1->SubAuthorityCount == Sid2->SubAuthorityCount) + { + SidLen = FIELD_OFFSET(SID, + SubAuthority[Sid1->SubAuthorityCount]); + return RtlCompareMemory(Sid1, + Sid2, + SidLen) == SidLen; + } + + return FALSE; }