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