advapi32: Set *lpSize properly in GetUserNameA

Alex Stanev alex at stanev.org
Sun Jun 26 04:21:17 CDT 2011


Fixes bug 27598

---
  dlls/advapi32/advapi.c |    9 +++------
  1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/dlls/advapi32/advapi.c b/dlls/advapi32/advapi.c
index e135fa5..b16a7c1 100644
--- a/dlls/advapi32/advapi.c
+++ b/dlls/advapi32/advapi.c
@@ -55,19 +55,16 @@ GetUserNameA( LPSTR lpszName, LPDWORD lpSize )
  {
      WCHAR *buffer;
      BOOL ret;
-    DWORD sizeW = *lpSize;

-    if (!(buffer = HeapAlloc( GetProcessHeap(), 0, sizeW * 
sizeof(WCHAR) )))
+    if (!(buffer = HeapAlloc( GetProcessHeap(), 0, *lpSize * 
sizeof(WCHAR) )))
      {
          SetLastError( ERROR_NOT_ENOUGH_MEMORY );
          return FALSE;
      }

-    ret = GetUserNameW( buffer, &sizeW );
+    ret = GetUserNameW( buffer, lpSize );
      if (ret)
-        WideCharToMultiByte( CP_ACP, 0, buffer, -1, lpszName, *lpSize, 
NULL, NULL );
-    else
-        *lpSize = sizeW;
+        *lpSize = WideCharToMultiByte( CP_ACP, 0, buffer, -1, lpszName, 
*lpSize, NULL, NULL );

      HeapFree( GetProcessHeap(), 0, buffer );
      return ret;
-- 
1.7.4.1



More information about the wine-patches mailing list