mshtml: Fix the size passed to MultiByteToWideChar.

This commit is contained in:
Colin Finck 2009-04-22 21:31:48 +02:00 committed by Alexandre Julliard
parent eafc9caa80
commit fcceb61fd0
1 changed files with 4 additions and 2 deletions

View File

@ -425,6 +425,7 @@ static LPWSTR get_url(void)
HKEY hkey; HKEY hkey;
DWORD res, type; DWORD res, type;
DWORD size = INTERNET_MAX_URL_LENGTH*sizeof(WCHAR); DWORD size = INTERNET_MAX_URL_LENGTH*sizeof(WCHAR);
DWORD returned_size;
LPWSTR url; LPWSTR url;
static const WCHAR wszGeckoUrl[] = {'G','e','c','k','o','U','r','l',0}; static const WCHAR wszGeckoUrl[] = {'G','e','c','k','o','U','r','l',0};
@ -437,15 +438,16 @@ static LPWSTR get_url(void)
return NULL; return NULL;
url = heap_alloc(size); url = heap_alloc(size);
returned_size = size;
res = RegQueryValueExW(hkey, wszGeckoUrl, NULL, &type, (LPBYTE)url, &size); res = RegQueryValueExW(hkey, wszGeckoUrl, NULL, &type, (LPBYTE)url, &returned_size);
RegCloseKey(hkey); RegCloseKey(hkey);
if(res != ERROR_SUCCESS || type != REG_SZ) { if(res != ERROR_SUCCESS || type != REG_SZ) {
heap_free(url); heap_free(url);
return NULL; return NULL;
} }
if(size > sizeof(httpW) && !memcmp(url, httpW, sizeof(httpW))) { if(returned_size > sizeof(httpW) && !memcmp(url, httpW, sizeof(httpW))) {
strcatW(url, v_formatW); strcatW(url, v_formatW);
MultiByteToWideChar(CP_ACP, 0, GECKO_VERSION, -1, url+strlenW(url), size/sizeof(WCHAR)-strlenW(url)); MultiByteToWideChar(CP_ACP, 0, GECKO_VERSION, -1, url+strlenW(url), size/sizeof(WCHAR)-strlenW(url));
} }