winhttp: Prepend slash to request path if necessary.
Hans Leidekker
hans at codeweavers.com
Mon Dec 8 05:35:43 CST 2008
Fixes http://bugs.winehq.org/show_bug.cgi?id=16376
-Hans
diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c
index 545ed04..032807a 100644
--- a/dlls/winhttp/session.c
+++ b/dlls/winhttp/session.c
@@ -468,11 +468,24 @@ HINTERNET WINAPI WinHttpOpenRequest( HINTERNET hconnect, LPCWSTR verb, LPCWSTR o
if (!netconn_init( &request->netconn, request->hdr.flags & WINHTTP_FLAG_SECURE )) goto end;
if (!verb || !verb[0]) verb = getW;
- if (!object || !object[0]) object = slashW;
- if (!version || !version[0]) version = http1_1;
-
if (!(request->verb = strdupW( verb ))) goto end;
- if (!(request->path = strdupW( object ))) goto end;
+
+ if (object)
+ {
+ WCHAR *path, *p;
+ unsigned int len;
+
+ len = strlenW( object ) + 1;
+ if (object[0] != '/') len++;
+ if (!(p = path = heap_alloc( len * sizeof(WCHAR) ))) goto end;
+
+ if (object[0] != '/') *p++ = '/';
+ strcpyW( p, object );
+ request->path = path;
+ }
+ else if (!(request->path = strdupW( slashW ))) goto end;
+
+ if (!version || !version[0]) version = http1_1;
if (!(request->version = strdupW( version ))) goto end;
if (!(hrequest = alloc_handle( &request->hdr ))) goto end;
More information about the wine-patches
mailing list