[PATCH v2 3/4] httpapi: Stop setting group->url if add_url() fails.

Julian Klemann jklemann at codeweavers.com
Thu Jun 16 12:55:09 CDT 2022


The URL should not be set if the URL cannot be added to a request queue.

Signed-off-by: Julian Klemann <jklemann at codeweavers.com>
---
v2: No change.
---
 dlls/httpapi/httpapi_main.c  | 11 ++++++++---
 dlls/httpapi/tests/httpapi.c |  4 ++--
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/dlls/httpapi/httpapi_main.c b/dlls/httpapi/httpapi_main.c
index 4d2d307ffcb..a5f8007b0a9 100644
--- a/dlls/httpapi/httpapi_main.c
+++ b/dlls/httpapi/httpapi_main.c
@@ -686,6 +686,7 @@ ULONG WINAPI HttpAddUrlToUrlGroup(HTTP_URL_GROUP_ID id, const WCHAR *url,
         HTTP_URL_CONTEXT context, ULONG reserved)
 {
     struct url_group *group = get_url_group(id);
+    ULONG ret;
 
     TRACE("id %s, url %s, context %s, reserved %#lx.\n", wine_dbgstr_longlong(id),
             debugstr_w(url), wine_dbgstr_longlong(context), reserved);
@@ -696,13 +697,17 @@ ULONG WINAPI HttpAddUrlToUrlGroup(HTTP_URL_GROUP_ID id, const WCHAR *url,
         return ERROR_CALL_NOT_IMPLEMENTED;
     }
 
+    if (group->queue)
+    {
+        ret = add_url(group->queue, url, context);
+        if (ret)
+            return ret;
+    }
+
     if (!(group->url = heap_strdupW(url)))
         return ERROR_OUTOFMEMORY;
     group->context = context;
 
-    if (group->queue)
-        return add_url(group->queue, url, context);
-
     return ERROR_SUCCESS;
 }
 
diff --git a/dlls/httpapi/tests/httpapi.c b/dlls/httpapi/tests/httpapi.c
index d231fd1d8ed..3c3f7abcd90 100644
--- a/dlls/httpapi/tests/httpapi.c
+++ b/dlls/httpapi/tests/httpapi.c
@@ -1268,8 +1268,8 @@ static void test_v2_bound_port(void)
 
     s = socket(AF_INET, SOCK_STREAM, 0);
     ret = connect(s, (struct sockaddr *)&sockaddr, sizeof(sockaddr));
-    todo_wine ok(ret, "Connecting to socket succeeded, %lu.\n", GetLastError());
-    todo_wine ok(GetLastError() == WSAECONNREFUSED, "Unexpected error connecting to socket, %lu.\n", GetLastError());
+    ok(ret, "Connecting to socket succeeded, %lu.\n", GetLastError());
+    ok(GetLastError() == WSAECONNREFUSED, "Unexpected error connecting to socket, %lu.\n", GetLastError());
 
     closesocket(s);
     ret = pHttpCloseRequestQueue(dummy_queue);
-- 
2.36.1




More information about the wine-devel mailing list