Hans Leidekker : wininet: Don' t discard the extra info part of a URL in InternetOpenUrl.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Feb 20 05:25:00 CST 2007


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

Author: Hans Leidekker <hans at it.vu.nl>
Date:   Mon Feb 19 11:08:52 2007 +0100

wininet: Don't discard the extra info part of a URL in InternetOpenUrl.

---

 dlls/wininet/internet.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 80ddc24..436dd8b 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -2857,7 +2857,24 @@ HINTERNET WINAPI INTERNET_InternetOpenUrlW(LPWININETAPPINFOW hIC, LPCWSTR lpszUr
 			      userName, password, dwFlags, dwContext, INET_OPENURL);
 	if(client == NULL)
 	    break;
-	client1 = HttpOpenRequestW(client, NULL, path, NULL, NULL, accept, dwFlags, dwContext);
+
+	if (urlComponents.dwExtraInfoLength) {
+		WCHAR *path_extra;
+		DWORD size = urlComponents.dwUrlPathLength + urlComponents.dwExtraInfoLength + 1;
+
+		if (!(path_extra = HeapAlloc(GetProcessHeap(), 0, size)))
+		{
+			InternetCloseHandle(client);
+			break;
+		}
+		strcpyW(path_extra, urlComponents.lpszUrlPath);
+		strcatW(path_extra, urlComponents.lpszExtraInfo);
+		client1 = HttpOpenRequestW(client, NULL, path_extra, NULL, NULL, accept, dwFlags, dwContext);
+		HeapFree(GetProcessHeap(), 0, path_extra);
+	}
+	else
+		client1 = HttpOpenRequestW(client, NULL, path, NULL, NULL, accept, dwFlags, dwContext);
+
 	if(client1 == NULL) {
 	    InternetCloseHandle(client);
 	    break;




More information about the wine-cvs mailing list