mirror of
https://github.com/reactos/reactos.git
synced 2024-10-03 16:05:37 +00:00
wininet: Fixed memory corruption in urlcache.
Author: Marcus Meissner <marcus at jet.franken.de> Date: Sun Apr 5 13:55:21 2009 +0200 svn path=/trunk/; revision=40398
This commit is contained in:
parent
975df12f3c
commit
9854f20f1c
|
@ -980,11 +980,13 @@ static BOOL URLCache_CopyEntry(
|
||||||
/* FIXME: is source url optional? */
|
/* FIXME: is source url optional? */
|
||||||
if (*lpdwBufferSize >= dwRequiredSize)
|
if (*lpdwBufferSize >= dwRequiredSize)
|
||||||
{
|
{
|
||||||
lpCacheEntryInfo->lpszSourceUrlName = (LPSTR)lpCacheEntryInfo + dwRequiredSize - lenUrl - 1;
|
DWORD lenUrlBytes = (lenUrl+1) * (bUnicode ? sizeof(WCHAR) : sizeof(CHAR));
|
||||||
if (bUnicode)
|
|
||||||
MultiByteToWideChar(CP_ACP, 0, (LPSTR)pUrlEntry + pUrlEntry->dwOffsetUrl, -1, (LPWSTR)lpCacheEntryInfo->lpszSourceUrlName, lenUrl + 1);
|
lpCacheEntryInfo->lpszSourceUrlName = (LPSTR)lpCacheEntryInfo + dwRequiredSize - lenUrlBytes;
|
||||||
else
|
if (bUnicode)
|
||||||
memcpy(lpCacheEntryInfo->lpszSourceUrlName, (LPSTR)pUrlEntry + pUrlEntry->dwOffsetUrl, (lenUrl + 1) * sizeof(CHAR));
|
MultiByteToWideChar(CP_ACP, 0, (LPSTR)pUrlEntry + pUrlEntry->dwOffsetUrl, -1, (LPWSTR)lpCacheEntryInfo->lpszSourceUrlName, lenUrl + 1);
|
||||||
|
else
|
||||||
|
memcpy(lpCacheEntryInfo->lpszSourceUrlName, (LPSTR)pUrlEntry + pUrlEntry->dwOffsetUrl, lenUrlBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((dwRequiredSize % 4) && (dwRequiredSize < *lpdwBufferSize))
|
if ((dwRequiredSize % 4) && (dwRequiredSize < *lpdwBufferSize))
|
||||||
|
|
Loading…
Reference in a new issue