From: Eric Kohl Date: Sat, 14 Sep 2013 21:35:01 +0000 (+0000) Subject: [NETAPI32] X-Git-Tag: ReactOS-0.3.16~1403 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=6e5bdff3a628726a26e6b30eb189c1983ffb0ff4 [NETAPI32] NetLocalGroupGetMembers: Fix heap corruption by calculationg the proper buffer size. svn path=/trunk/; revision=60119 --- diff --git a/reactos/dll/win32/netapi32/local_group.c b/reactos/dll/win32/netapi32/local_group.c index 9f49f50ef64..0f301af947e 100644 --- a/reactos/dll/win32/netapi32/local_group.c +++ b/reactos/dll/win32/netapi32/local_group.c @@ -1515,27 +1515,27 @@ NetLocalGroupGetMembers( switch (level) { case 0: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_0) + - RtlLengthSid(EnumContext->Sids[i]); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_0) + + RtlLengthSid(EnumContext->Sids[i]); break; case 1: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_1) + - RtlLengthSid(EnumContext->Sids[i]) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_1) + + RtlLengthSid(EnumContext->Sids[i]) + + EnumContext->Names[i].Name.Length + sizeof(WCHAR); break; case 2: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_2) + - RtlLengthSid(EnumContext->Sids[i]) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR) + - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_2) + + RtlLengthSid(EnumContext->Sids[i]) + + EnumContext->Names[i].Name.Length + sizeof(WCHAR) + + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); break; case 3: - Size = sizeof(LOCALGROUP_MEMBERS_INFO_3) + - EnumContext->Names[i].Name.Length + sizeof(WCHAR) + - EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); + Size += sizeof(LOCALGROUP_MEMBERS_INFO_3) + + EnumContext->Names[i].Name.Length + sizeof(WCHAR) + + EnumContext->Domains->Domains[EnumContext->Names[i].DomainIndex].Name.Length + sizeof(WCHAR); break; default: