[3/4] winhttp: Accept empty headers parameter in WinHttpSendRequest.

Hans Leidekker hans at codeweavers.com
Thu Oct 29 05:12:22 CDT 2009


Fixes http://bugs.winehq.org/show_bug.cgi?id=19489
---
 dlls/winhttp/request.c       |    1 +
 dlls/winhttp/tests/winhttp.c |   25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index ea0ecda..d504ea5 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -411,6 +411,7 @@ BOOL add_request_headers( request_t *request, LPCWSTR headers, DWORD len, DWORD
     header_t *header;
 
     if (len == ~0u) len = strlenW( headers );
+    if (!len) return TRUE;
     if (!(buffer = heap_alloc( (len + 1) * sizeof(WCHAR) ))) return FALSE;
     strcpyW( buffer, headers );
 
diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c
index 24bdbb8..f72044d 100644
--- a/dlls/winhttp/tests/winhttp.c
+++ b/dlls/winhttp/tests/winhttp.c
@@ -221,6 +221,30 @@ static void test_OpenRequest (void)
 
 }
 
+static void test_empty_headers_param(void)
+{
+    static const WCHAR winehq[] = {'w','i','n','e','h','q','.','o','r','g',0};
+    static const WCHAR empty[]  = {0};
+    HANDLE ses, con, req;
+    BOOL ret;
+
+    ses = WinHttpOpen(test_useragent, 0, NULL, NULL, 0);
+    ok(ses != NULL, "failed to open session %u\n", GetLastError());
+
+    con = WinHttpConnect(ses, winehq, 80, 0);
+    ok(con != NULL, "failed to open a connection %u\n", GetLastError());
+
+    req = WinHttpOpenRequest(con, NULL, NULL, NULL, NULL, NULL, 0);
+    ok(req != NULL, "failed to open a request %u\n", GetLastError());
+
+    ret = WinHttpSendRequest(req, empty, 0, NULL, 0, 0, 0);
+    ok(ret, "failed to send request %u\n", GetLastError());
+
+    WinHttpCloseHandle(req);
+    WinHttpCloseHandle(con);
+    WinHttpCloseHandle(ses); 
+}
+
 static void test_SendRequest (void)
 {
     HINTERNET session, request, connection;
@@ -978,4 +1002,5 @@ START_TEST (winhttp)
     test_request_parameter_defaults();
     test_QueryOption();
     test_set_default_proxy_config();
+    test_empty_headers_param();
 }
-- 
1.6.3.3





More information about the wine-patches mailing list