Jacek Caban : urlmon: Don't pass query part of URL to
CreateUrlCacheEntryW.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Jun 6 07:41:58 CDT 2007
Module: wine
Branch: master
Commit: daca693f30b2c4c96e570a4523ccc4c8bfb07b77
URL: http://source.winehq.org/git/wine.git/?a=commit;h=daca693f30b2c4c96e570a4523ccc4c8bfb07b77
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jun 6 04:01:13 2007 +0200
urlmon: Don't pass query part of URL to CreateUrlCacheEntryW.
---
dlls/urlmon/umstream.c | 28 +++++++++++++---------------
1 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/dlls/urlmon/umstream.c b/dlls/urlmon/umstream.c
index 4a49b77..cd5e153 100644
--- a/dlls/urlmon/umstream.c
+++ b/dlls/urlmon/umstream.c
@@ -49,32 +49,30 @@ HRESULT UMCreateStreamOnCacheFile(LPCWSTR pszURL,
{
IUMCacheStream* ucstr;
HANDLE handle;
- LPWSTR ext;
- LPCWSTR c;
- LPCWSTR eloc = 0;
+ DWORD size;
+ LPWSTR url, c, ext = NULL;
HRESULT hr;
- for (c = pszURL; *c && *c != '#' && *c != '?'; ++c)
+ size = (strlenW(pszURL)+1)*sizeof(WCHAR);
+ url = HeapAlloc(GetProcessHeap(), 0, size);
+ memcpy(url, pszURL, size);
+
+ for (c = url; *c && *c != '#' && *c != '?'; ++c)
{
if (*c == '.')
- eloc = c + 1;
- else if (*c == '/' || *c == '\\')
- eloc = 0;
+ ext = c+1;
+ else if(*c == '/')
+ ext = NULL;
}
- if (!eloc)
- eloc = c;
-
- ext = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * (c - eloc + 1));
- memcpy(ext, eloc, sizeof(WCHAR) * (c - eloc));
- ext[c - eloc] = 0;
+ *c = 0;
- if(!CreateUrlCacheEntryW(pszURL, dwSize, ext, pszFileName, 0))
+ if(!CreateUrlCacheEntryW(url, dwSize, ext, pszFileName, 0))
hr = HRESULT_FROM_WIN32(GetLastError());
else
hr = 0;
- HeapFree(GetProcessHeap(), 0, ext);
+ HeapFree(GetProcessHeap(), 0, url);
if (hr)
return hr;
More information about the wine-cvs
mailing list