Jacek Caban : wininet: Pass arguments as substrings to load_persistent_cookie.

Alexandre Julliard julliard at wine.codeweavers.com
Tue May 17 11:19:37 CDT 2016


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon May 16 22:43:07 2016 +0200

wininet: Pass arguments as substrings to load_persistent_cookie.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wininet/cookie.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/dlls/wininet/cookie.c b/dlls/wininet/cookie.c
index 4e885d7..debf4b5 100644
--- a/dlls/wininet/cookie.c
+++ b/dlls/wininet/cookie.c
@@ -300,7 +300,7 @@ static BOOL create_cookie_url(substr_t domain, substr_t path, WCHAR *buf, DWORD
     return TRUE;
 }
 
-static BOOL load_persistent_cookie(LPCWSTR domain, LPCWSTR path)
+static BOOL load_persistent_cookie(substr_t domain, substr_t path)
 {
     INTERNET_CACHE_ENTRY_INFOW *info;
     cookie_container_t *cookie_container;
@@ -312,7 +312,7 @@ static BOOL load_persistent_cookie(LPCWSTR domain, LPCWSTR path)
     WCHAR *name, *data;
     FILETIME expiry, create, time;
 
-    if (!create_cookie_url(substrz(domain), substrz(path), cookie_url, sizeof(cookie_url)/sizeof(cookie_url[0]))) {
+    if (!create_cookie_url(domain, path, cookie_url, sizeof(cookie_url)/sizeof(cookie_url[0]))) {
         FIXME("Failed to create cookie URL.\n");
         return FALSE;
     }
@@ -338,7 +338,7 @@ static BOOL load_persistent_cookie(LPCWSTR domain, LPCWSTR path)
     str[size] = 0;
     UnlockUrlCacheEntryStream(cookie, 0);
 
-    cookie_container = get_cookie_container(substrz(domain), substrz(path), TRUE);
+    cookie_container = get_cookie_container(domain, path, TRUE);
     if(!cookie_container) {
         heap_free(str);
         return FALSE;
@@ -561,7 +561,6 @@ static DWORD get_cookie(const WCHAR *host, const WCHAR *path, DWORD flags, cooki
 {
     static const WCHAR empty_path[] = { '/',0 };
 
-    WCHAR *ptr, subpath[INTERNET_MAX_PATH_LENGTH];
     const WCHAR *p;
     cookie_domain_t *domain;
     cookie_container_t *container;
@@ -578,20 +577,16 @@ static DWORD get_cookie(const WCHAR *host, const WCHAR *path, DWORD flags, cooki
         while(p>host && p[-1]!='.') p--;
         if(p == host) break;
 
-        load_persistent_cookie(p, empty_path);
+        load_persistent_cookie(substr(p, host+len-p), substr(empty_path, 1));
     }
 
-    len = strlenW(path);
-    assert(len+1 < INTERNET_MAX_PATH_LENGTH);
-    memcpy(subpath, path, (len+1)*sizeof(WCHAR));
-    ptr = subpath+len;
+    p = host + len;
     do {
-        *ptr = 0;
-        load_persistent_cookie(host, subpath);
+        load_persistent_cookie(substr(host, len), substr(path, p-path));
 
-        ptr--;
-        while(ptr>subpath && ptr[-1]!='/') ptr--;
-    }while(ptr != subpath);
+        p--;
+        while(p > path && p[-1] != '/') p--;
+    }while(p != path);
 
     domain = get_cookie_domain(substrz(host), FALSE);
     if(!domain) {
@@ -1041,7 +1036,7 @@ DWORD set_cookie(const WCHAR *domain, const WCHAR *path, const WCHAR *cookie_nam
 
     EnterCriticalSection(&cookie_cs);
 
-    load_persistent_cookie(domain, path);
+    load_persistent_cookie(substrz(domain), substrz(path));
 
     container = get_cookie_container(substrz(domain), substrz(path), !expired);
     if(!container) {




More information about the wine-cvs mailing list