kernel32: Fix another overflow in GetModuleFileNameExW.

This commit is contained in:
Alexandre Julliard 2012-05-01 14:43:46 +02:00
parent 6a19d9f252
commit fd11023e4b
1 changed files with 11 additions and 9 deletions

View File

@ -1255,18 +1255,20 @@ DWORD WINAPI K32GetModuleFileNameExW(HANDLE process, HMODULE module,
return 0; return 0;
len = ldr_module.FullDllName.Length / sizeof(WCHAR); len = ldr_module.FullDllName.Length / sizeof(WCHAR);
if (size <= len)
{
len = size;
size--;
}
if (!ReadProcessMemory(process, ldr_module.FullDllName.Buffer, if (!ReadProcessMemory(process, ldr_module.FullDllName.Buffer,
file_name, size * sizeof(WCHAR), NULL)) file_name, min( len, size ) * sizeof(WCHAR), NULL))
return 0; return 0;
file_name[size] = 0; if (len < size)
return len; {
file_name[len] = 0;
return len;
}
else
{
file_name[size - 1] = 0;
return size;
}
} }
/*********************************************************************** /***********************************************************************