Module: wine Branch: master Commit: daca693f30b2c4c96e570a4523ccc4c8bfb07b77 URL: http://source.winehq.org/git/wine.git/?a=commit;h=daca693f30b2c4c96e570a4523...
Author: Jacek Caban jacek@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;