mirror of
https://github.com/reactos/reactos.git
synced 2025-04-26 08:30:21 +00:00
- Fix GetEnvironmentVariableW. This fixed also 4 wine tests for OpenFile and SearchPathA/W
svn path=/trunk/; revision=38682
This commit is contained in:
parent
8dd743f625
commit
9fe45fbb32
1 changed files with 3 additions and 3 deletions
|
@ -139,7 +139,7 @@ GetEnvironmentVariableW (
|
|||
lpName);
|
||||
|
||||
VarValue.Length = 0;
|
||||
VarValue.MaximumLength = (USHORT)(nSize != 0 ? (nSize - 1) * sizeof(WCHAR) : 0);
|
||||
VarValue.MaximumLength = (USHORT) (nSize ? nSize - 1 : 0) * sizeof(WCHAR);
|
||||
VarValue.Buffer = lpBuffer;
|
||||
|
||||
Status = RtlQueryEnvironmentVariable_U (NULL,
|
||||
|
@ -147,13 +147,13 @@ GetEnvironmentVariableW (
|
|||
&VarValue);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus (Status);
|
||||
if (Status == STATUS_BUFFER_TOO_SMALL)
|
||||
{
|
||||
return (VarValue.Length / sizeof(WCHAR)) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLastErrorByStatus (Status);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ GetEnvironmentVariableW (
|
|||
{
|
||||
/* make sure the string is NULL-terminated! RtlQueryEnvironmentVariable_U
|
||||
only terminates it if MaximumLength < Length */
|
||||
VarValue.Buffer[VarValue.Length / sizeof(WCHAR)] = L'\0';
|
||||
lpBuffer[VarValue.Length / sizeof(WCHAR)] = L'\0';
|
||||
}
|
||||
|
||||
return (VarValue.Length / sizeof(WCHAR));
|
||||
|
|
Loading…
Reference in a new issue