[PATCH v2 1/2] wininet: Changed usage of UrlEscapeW to fit winapi behavior

Fabian Maurer dark.shadow4 at web.de
Wed Dec 14 09:47:50 CST 2016


Fixes https://bugs.winehq.org/show_bug.cgi?id=41956

Tested on Windows 10 and Arch Linux.

Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
 dlls/wininet/http.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index b3c8e66..658342b 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -4189,12 +4189,13 @@ static DWORD HTTP_HandleRedirect(http_request_t *request, LPCWSTR lpszUrl)
     request->path = NULL;
     if (*path)
     {
-        DWORD needed = 0;
+        DWORD needed = 1;
         HRESULT rc;
+        WCHAR dummy = 0;
 
-        rc = UrlEscapeW(path, NULL, &needed, URL_ESCAPE_SPACES_ONLY);
-        if (rc == E_POINTER)
-            needed = strlenW(path)+1;
+        rc = UrlEscapeW(path, &dummy, &needed, URL_ESCAPE_SPACES_ONLY);
+        if (rc != E_POINTER)
+            ERR("Unable to escape string!(%s) (%d)\n",debugstr_w(path),rc);
         request->path = heap_alloc(needed*sizeof(WCHAR));
         rc = UrlEscapeW(path, request->path, &needed,
                         URL_ESCAPE_SPACES_ONLY);
-- 
2.10.2




More information about the wine-patches mailing list