From daca693f30b2c4c96e570a4523ccc4c8bfb07b77 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 6 Jun 2007 04:01:13 +0200 Subject: [PATCH] urlmon: Don't pass query part of URL to CreateUrlCacheEntryW. --- dlls/urlmon/umstream.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/dlls/urlmon/umstream.c b/dlls/urlmon/umstream.c index 4a49b772234..cd5e1538720 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; -- 2.11.4.GIT