[3/3] wininet/tests: Add a test for recently introduced regression related to InternetCrackUrl.

Sebastian Lackner sebastian at fds-team.de
Fri Jul 8 05:10:00 CDT 2016


Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---

Reason for the failure is because after decoding a "/" is added, and it
does not fit into the buffer anymore. Michael wrote a patch to dynamically
allocate a buffer, however I do not think the "/" should be added in the
first place.

 dlls/wininet/tests/url.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/dlls/wininet/tests/url.c b/dlls/wininet/tests/url.c
index 9be3839..ddc99db 100644
--- a/dlls/wininet/tests/url.c
+++ b/dlls/wininet/tests/url.c
@@ -806,6 +806,19 @@ static void InternetCrackUrlW_test(void)
     ok( r, "InternetCrackUrlW failed unexpectedly\n");
     ok( host[0] == 'x', "host should be x.org\n");
     ok( urlpart[0] == 0, "urlpart should be empty\n");
+
+    urlpart[0] = 0;
+    host[0] = 0;
+    memset(&comp, 0, sizeof(comp));
+    comp.dwStructSize = sizeof(comp);
+    comp.lpszHostName = host;
+    comp.dwHostNameLength = sizeof(host)/sizeof(host[0]);
+    comp.lpszUrlPath = urlpart;
+    comp.dwUrlPathLength = sizeof(urlpart)/sizeof(urlpart[0]);
+    r = InternetCrackUrlW(url3, 0, ICU_DECODE, &comp);
+    todo_wine ok(r, "InternetCrackUrlW failed unexpectedly\n");
+    todo_wine ok(host[0] == 'x', "host should be x.org\n");
+    ok(urlpart[0] == 0, "urlpart should be empty\n");
 }
 
 static void fill_url_components(URL_COMPONENTSA *lpUrlComponents)
-- 
2.8.0



More information about the wine-patches mailing list