Author: dchapyshev
Date: Sat Jul 11 18:18:06 2009
New Revision: 41887
URL:
http://svn.reactos.org/svn/reactos?rev=41887&view=rev
Log:
- Fix 3 "kernel32_winetest environ" tests. All environ tests passed now
Modified:
trunk/reactos/dll/win32/kernel32/misc/computername.c
Modified: trunk/reactos/dll/win32/kernel32/misc/computername.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/co…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/misc/computername.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/misc/computername.c [iso-8859-1] Sat Jul 11 18:18:06
2009
@@ -92,10 +92,18 @@
return FALSE;
}
- if (*nSize > (KeyInfo->DataLength / sizeof(WCHAR)))
+ if (lpBuffer && *nSize > (KeyInfo->DataLength / sizeof(WCHAR)))
{
*nSize = KeyInfo->DataLength / sizeof(WCHAR) - 1;
lpBuffer[*nSize] = 0;
+ }
+ else
+ {
+ RtlFreeHeap(RtlGetProcessHeap(), 0, KeyInfo);
+ ZwClose(KeyHandle);
+ *nSize = ReturnSize;
+ SetLastErrorByStatus(STATUS_BUFFER_OVERFLOW);
+ return FALSE;
}
RtlCopyMemory(lpBuffer, KeyInfo->Data, *nSize * sizeof(WCHAR));
@@ -254,7 +262,8 @@
if (!TempBuffer)
{
- return ERROR_OUTOFMEMORY;
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ return FALSE;
}
AnsiString.MaximumLength = (USHORT)*nSize;