Nikolay Sivov : advapi32: Fix allocation length for domain list (Valgrind).
Alexandre Julliard
julliard at winehq.org
Mon Apr 29 13:55:24 CDT 2013
Module: wine
Branch: master
Commit: bc52f1c02989b3032d8c55db8c506803bc96cd97
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bc52f1c02989b3032d8c55db8c506803bc96cd97
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Apr 29 09:22:30 2013 +0400
advapi32: Fix allocation length for domain list (Valgrind).
---
dlls/advapi32/lsa.c | 3 ++-
dlls/advapi32/tests/lsa.c | 2 ++
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index 5c3ffc4..fd270ff 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -405,7 +405,7 @@ NTSTATUS WINAPI LsaLookupNames2( LSA_HANDLE policy, ULONG flags, ULONG count,
/* use maximum domain count */
if (!(*domains = heap_alloc(sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION)*count +
- sid_size_total + domainname_size_total)))
+ sid_size_total + domainname_size_total*sizeof(WCHAR))))
{
heap_free(*sids);
return STATUS_NO_MEMORY;
@@ -440,6 +440,7 @@ NTSTATUS WINAPI LsaLookupNames2( LSA_HANDLE policy, ULONG flags, ULONG count,
if (domain_size)
{
domain.Length = domain_size * sizeof(WCHAR);
+ domain.MaximumLength = (domain_size + 1) * sizeof(WCHAR);
(*sids)[i].DomainIndex = lsa_reflist_add_domain(*domains, &domain, &domain_data);
}
}
diff --git a/dlls/advapi32/tests/lsa.c b/dlls/advapi32/tests/lsa.c
index bffb7c0..b1dcc78 100644
--- a/dlls/advapi32/tests/lsa.c
+++ b/dlls/advapi32/tests/lsa.c
@@ -390,6 +390,8 @@ static void test_LsaLookupSids(void)
{
ok((char*)list->Domains - (char*)list > 0, "%p, %p\n", list, list->Domains);
ok((char*)list->Domains[0].Sid - (char*)list->Domains > 0, "%p, %p\n", list->Domains, list->Domains[0].Sid);
+ ok(list->Domains[0].Name.MaximumLength > list->Domains[0].Name.Length, "got %d, %d\n", list->Domains[0].Name.MaximumLength,
+ list->Domains[0].Name.Length);
}
pLsaFreeMemory(names);
More information about the wine-cvs
mailing list