Henri Verbeet : wininet: Cut of the query string before searching for the filename in CreateUrlCacheEntryW ().

Alexandre Julliard julliard at winehq.org
Thu Sep 23 12:43:49 CDT 2010


Module: wine
Branch: master
Commit: 6e46e9048f03613c3c5e139a6f8641635e89b6d8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6e46e9048f03613c3c5e139a6f8641635e89b6d8

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Thu Sep 23 11:48:05 2010 +0200

wininet: Cut of the query string before searching for the filename in CreateUrlCacheEntryW().

Apparently it's possible to receive URLs with e.g. slashes in the query
string. I was under the impression those were reserved in the query string,
but e.g. Firefox will happily accept them as well.

---

 dlls/wininet/urlcache.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c
index a220e33..2129f42 100644
--- a/dlls/wininet/urlcache.c
+++ b/dlls/wininet/urlcache.c
@@ -2271,6 +2271,12 @@ BOOL WINAPI CreateUrlCacheEntryW(
     if (((lpszUrlEnd - lpszUrlName) > 1) && (*(lpszUrlEnd - 1) == '/' || *(lpszUrlEnd - 1) == '\\'))
         lpszUrlEnd--;
 
+    lpszUrlPart = memchrW(lpszUrlName, '?', lpszUrlEnd - lpszUrlName);
+    if (!lpszUrlPart)
+        lpszUrlPart = memchrW(lpszUrlName, '#', lpszUrlEnd - lpszUrlName);
+    if (lpszUrlPart)
+        lpszUrlEnd = lpszUrlPart;
+
     for (lpszUrlPart = lpszUrlEnd; 
         (lpszUrlPart >= lpszUrlName); 
         lpszUrlPart--)
@@ -2281,10 +2287,6 @@ BOOL WINAPI CreateUrlCacheEntryW(
             lpszUrlPart++;
             break;
         }
-        else if(*lpszUrlPart == '?' || *lpszUrlPart == '#')
-        {
-            lpszUrlEnd = lpszUrlPart;
-        }
     }
     if (!lstrcmpW(lpszUrlPart, szWWW))
     {




More information about the wine-cvs mailing list