diff --git a/dlls/mshtml/htmllocation.c b/dlls/mshtml/htmllocation.c index 9c90edceca9..cf591d7bcfd 100644 --- a/dlls/mshtml/htmllocation.c +++ b/dlls/mshtml/htmllocation.c @@ -293,10 +293,10 @@ static HRESULT WINAPI HTMLLocation_get_protocol(IHTMLLocation *iface, BSTR *p) FIXME("Unexpected blank protocol\n"); return E_NOTIMPL; }else { - WCHAR buf[url.dwSchemeLength + 1]; + WCHAR *buf; + buf = *p = SysAllocStringLen(NULL, url.dwSchemeLength + 1); memcpy(buf, url.lpszScheme, url.dwSchemeLength * sizeof(WCHAR)); buf[url.dwSchemeLength] = ':'; - *p = SysAllocStringLen(buf, url.dwSchemeLength + 1); } if(!*p) return E_OUTOFMEMORY; @@ -334,13 +334,13 @@ static HRESULT WINAPI HTMLLocation_get_host(IHTMLLocation *iface, BSTR *p) if(url.nPort) { /* : */ const WCHAR format[] = {'%','u',0}; - DWORD len = url.dwHostNameLength + 1 + 5 + 1; - WCHAR buf[len]; + DWORD len = url.dwHostNameLength + 1 + 5; + WCHAR *buf; + buf = *p = SysAllocStringLen(NULL, len); memcpy(buf, url.lpszHostName, url.dwHostNameLength * sizeof(WCHAR)); buf[url.dwHostNameLength] = ':'; snprintfW(buf + url.dwHostNameLength + 1, 6, format, url.nPort); - *p = SysAllocString(buf); }else *p = SysAllocStringLen(url.lpszHostName, url.dwHostNameLength);