From fd09fafa0b7c9fbf76b8e9a56f6602f5888c1af8 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Tue, 30 Dec 2008 15:12:17 +0000 Subject: [PATCH] fix some security winetests svn path=/trunk/; revision=38472 --- reactos/dll/win32/advapi32/sec/misc.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/reactos/dll/win32/advapi32/sec/misc.c b/reactos/dll/win32/advapi32/sec/misc.c index 4adc3d155fe..f1554df5850 100644 --- a/reactos/dll/win32/advapi32/sec/misc.c +++ b/reactos/dll/win32/advapi32/sec/misc.c @@ -1261,9 +1261,9 @@ LookupAccountNameA(LPCSTR SystemName, WideCharToMultiByte(CP_ACP, 0, lpReferencedDomainNameW, - *hReferencedDomainNameLength, + *hReferencedDomainNameLength + 1, ReferencedDomainName, - *hReferencedDomainNameLength, + *hReferencedDomainNameLength + 1, NULL, NULL); } @@ -1343,13 +1343,16 @@ LookupAccountNameW(LPCWSTR lpSystemName, if (ReferencedDomainName != NULL && (*cchReferencedDomainName > wcslen(dm))) wcscpy(ReferencedDomainName, dm); - if (*cchReferencedDomainName <= wcslen(dm)) + if ((*cchReferencedDomainName <= wcslen(dm)) || (!ret)) { SetLastError(ERROR_INSUFFICIENT_BUFFER); ret = FALSE; + *cchReferencedDomainName = wcslen(dm) + 1; + } + else + { + *cchReferencedDomainName = wcslen(dm); } - - *cchReferencedDomainName = wcslen(dm)+1; FreeSid(pSid);