Module: wine Branch: refs/heads/master Commit: c564ee826f46e630dc21d93725535d2d20312ef2 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=c564ee826f46e630dc21d937...
Author: Robert Shearman rob@codeweavers.com Date: Thu Mar 30 19:55:36 2006 +0100
wininet: Fix some string length calculations.
Fix some string length calculations that didn't account for the different sized characters with Unicode.
---
dlls/wininet/urlcache.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c index a4bdfa7..3557ea5 100644 --- a/dlls/wininet/urlcache.c +++ b/dlls/wininet/urlcache.c @@ -943,8 +943,8 @@ static BOOL URLCache_CopyEntry( lenUrl = MultiByteToWideChar(CP_ACP, 0, (LPSTR)pUrlEntry + pUrlEntry->dwOffsetUrl, -1, NULL, 0); else lenUrl = strlen((LPSTR)pUrlEntry + pUrlEntry->dwOffsetUrl); - dwRequiredSize += lenUrl + 1; - + dwRequiredSize += (lenUrl + 1) * (bUnicode ? sizeof(WCHAR) : sizeof(CHAR)); + /* FIXME: is source url optional? */ if (*lpdwBufferSize >= dwRequiredSize) { @@ -970,7 +970,7 @@ static BOOL URLCache_CopyEntry( { lpCacheEntryInfo->lpszLocalFileName = lpszLocalFileName; } - dwRequiredSize += nLocalFilePathSize; + dwRequiredSize += nLocalFilePathSize * (bUnicode ? sizeof(WCHAR) : sizeof(CHAR)) ;
if ((dwRequiredSize % 4) && (dwRequiredSize < *lpdwBufferSize)) ZeroMemory((LPBYTE)lpCacheEntryInfo + dwRequiredSize, 4 - (dwRequiredSize % 4));