Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libsoup for openSUSE:Factory checked 
in at 2026-02-24 15:37:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsoup (Old)
 and      /work/SRC/openSUSE:Factory/.libsoup.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsoup"

Tue Feb 24 15:37:39 2026 rev:165 rq:1334360 version:3.6.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsoup/libsoup.changes  2026-02-16 
13:23:35.333718847 +0100
+++ /work/SRC/openSUSE:Factory/.libsoup.new.1977/libsoup.changes        
2026-02-24 15:37:43.136225689 +0100
@@ -1,0 +2,69 @@
+Fri Feb 20 16:21:32 UTC 2026 - Michael Gorse <[email protected]>
+
+- Rebase and re-enable libsoup-CVE-2026-2708.patch.
+
+-------------------------------------------------------------------
+Fri Feb 20 15:30:11 UTC 2026 - Dominique Leuenberger <[email protected]>
+
+- Update to version 3.6.6:
+  + websocket: Fix out-of-bounds read in process_frame
+  + Check nulls returned by soup_date_time_new_from_http_string()
+  + Numerous fixes to handling of Range headers
+  + server: close the connection after responsing a request
+    containing Content-Length and Transfer-Encoding
+  + Use CRLF as line boundary when parsing chunked enconding data
+  + websocket: do not accept messages frames after closing due to
+    an error
+  + Sanitize filename of content disposition header values
+  + Always validate the headers value when coming from untrusted
+    source
+  + uri-utils: do host validation when checking if a GUri is valid
+  + multipart: check length of bytes read
+    soup_filter_input_stream_read_until()
+  + message-headers: Reject duplicate Host headers
+  + server: null-check soup_date_time_to_string()
+  + auth-digest: fix crash in
+    soup_auth_digest_get_protection_space()
+  + session: fix 'heap-use-after-free' caused by 'finishing' queue
+    item twice
+  + cookies: Avoid expires attribute if date is invalid
+  + http1: Set EOF flag once content-length bytes have been read
+  + date-utils: Add value checks for date/time parsing
+  + multipart: Fix multiple boundry limits
+  + Fixed multiple possible memory leaks
+  + message-headers: Correct merge of ranges
+  + body-input-stream: Correct chunked trailers end detection
+  + server-http2: Correctly validate URIs
+  + multipart: Fix read out of buffer bounds under
+    soup_multipart_new_from_message()
+  + headers: Ensure Request-Line comprises entire first line
+  + tests: Fix MSVC build error
+  + Fix possible deadlock on init from gmodule usage
+  + Updated translations.
+- Drop upstream merged patches:
+  + libsoup-CVE-2025-11021.patch
+  + libsoup-CVE-2025-12105.patch
+  + libsoup-CVE-2025-14523.patch
+  + libsoup-CVE-2025-32907.patch
+  + libsoup-CVE-2025-32908.patch
+  + libsoup-CVE-2025-32914.patch
+  + libsoup-CVE-2025-4476.patch
+  + libsoup-CVE-2025-4945.patch
+  + libsoup-CVE-2025-4948.patch
+  + libsoup-CVE-2025-4969.patch
+  + libsoup-CVE-2026-0716.patch
+  + libsoup-CVE-2026-1536.patch
+  + libsoup-CVE-2026-1761.patch
+  + libsoup-CVE-2026-2369.patch
+  + libsoup-CVE-2026-2443.patch
+- libsoup-CVE-2026-2708.patch temporarily disabled while we need to
+  rebase it.  
+
+-------------------------------------------------------------------
+Thu Feb 19 20:50:20 UTC 2026 - Michael Gorse <[email protected]>
+
+- Add libsoup-CVE-2026-2708.patch: do not allow adding multiple
+  content length values to headers (bsc#1258508 CVE-2026-2708
+  glgo#GNOME/libsoup#500).
+
+-------------------------------------------------------------------

Old:
----
  libsoup-3.6.5.obscpio
  libsoup-CVE-2025-11021.patch
  libsoup-CVE-2025-12105.patch
  libsoup-CVE-2025-14523.patch
  libsoup-CVE-2025-32907.patch
  libsoup-CVE-2025-32908.patch
  libsoup-CVE-2025-32914.patch
  libsoup-CVE-2025-4476.patch
  libsoup-CVE-2025-4945.patch
  libsoup-CVE-2025-4948.patch
  libsoup-CVE-2025-4969.patch
  libsoup-CVE-2026-0716.patch
  libsoup-CVE-2026-1536.patch
  libsoup-CVE-2026-1761.patch
  libsoup-CVE-2026-2369.patch
  libsoup-CVE-2026-2443.patch

New:
----
  libsoup-3.6.6.obscpio
  libsoup-CVE-2026-2708.patch

----------(Old B)----------
  Old:- Drop upstream merged patches:
  + libsoup-CVE-2025-11021.patch
  + libsoup-CVE-2025-12105.patch
  Old:  + libsoup-CVE-2025-11021.patch
  + libsoup-CVE-2025-12105.patch
  + libsoup-CVE-2025-14523.patch
  Old:  + libsoup-CVE-2025-12105.patch
  + libsoup-CVE-2025-14523.patch
  + libsoup-CVE-2025-32907.patch
  Old:  + libsoup-CVE-2025-14523.patch
  + libsoup-CVE-2025-32907.patch
  + libsoup-CVE-2025-32908.patch
  Old:  + libsoup-CVE-2025-32907.patch
  + libsoup-CVE-2025-32908.patch
  + libsoup-CVE-2025-32914.patch
  Old:  + libsoup-CVE-2025-32908.patch
  + libsoup-CVE-2025-32914.patch
  + libsoup-CVE-2025-4476.patch
  Old:  + libsoup-CVE-2025-32914.patch
  + libsoup-CVE-2025-4476.patch
  + libsoup-CVE-2025-4945.patch
  Old:  + libsoup-CVE-2025-4476.patch
  + libsoup-CVE-2025-4945.patch
  + libsoup-CVE-2025-4948.patch
  Old:  + libsoup-CVE-2025-4945.patch
  + libsoup-CVE-2025-4948.patch
  + libsoup-CVE-2025-4969.patch
  Old:  + libsoup-CVE-2025-4948.patch
  + libsoup-CVE-2025-4969.patch
  + libsoup-CVE-2026-0716.patch
  Old:  + libsoup-CVE-2025-4969.patch
  + libsoup-CVE-2026-0716.patch
  + libsoup-CVE-2026-1536.patch
  Old:  + libsoup-CVE-2026-0716.patch
  + libsoup-CVE-2026-1536.patch
  + libsoup-CVE-2026-1761.patch
  Old:  + libsoup-CVE-2026-1536.patch
  + libsoup-CVE-2026-1761.patch
  + libsoup-CVE-2026-2369.patch
  Old:  + libsoup-CVE-2026-1761.patch
  + libsoup-CVE-2026-2369.patch
  + libsoup-CVE-2026-2443.patch
  Old:  + libsoup-CVE-2026-2369.patch
  + libsoup-CVE-2026-2443.patch
- libsoup-CVE-2026-2708.patch temporarily disabled while we need to
----------(Old E)----------

----------(New B)----------
  New:
- Rebase and re-enable libsoup-CVE-2026-2708.patch.
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libsoup.spec ++++++
--- /var/tmp/diff_new_pack.FoGJwC/_old  2026-02-24 15:37:46.880380605 +0100
+++ /var/tmp/diff_new_pack.FoGJwC/_new  2026-02-24 15:37:46.904381598 +0100
@@ -18,7 +18,7 @@
 
 %define api_version 3.0
 Name:           libsoup
-Version:        3.6.5
+Version:        3.6.6
 Release:        0
 Summary:        HTTP client/server library for GNOME
 License:        LGPL-2.1-or-later
@@ -26,40 +26,15 @@
 URL:            https://wiki.gnome.org/Projects/libsoup
 Source0:        %{name}-%{version}.tar.zst
 Source99:       baselibs.conf
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-32914.patch boo#1241164 [email protected] 
-- fix read out of buffer bounds under soup_multipart_new_from_message.
-Patch0:         libsoup-CVE-2025-32914.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-32908.patch boo#1241223 [email protected] 
-- soup-server-http2: Check validity of the constructed connection URI.
-Patch1:         libsoup-CVE-2025-32908.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-32907.patch boo#1241222 [email protected] 
-- correct merge of ranges.
-Patch2:         libsoup-CVE-2025-32907.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-4476.patch boo#1243422 [email protected] 
-- fix crash in soup_auth_digest_get_protection_space.
-Patch3:         libsoup-CVE-2025-4476.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-4948.patch boo#1243332 [email protected] 
-- verify boundary limits for multipart body.
-Patch4:         libsoup-CVE-2025-4948.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-4969.patch boo#1243423 [email protected] 
-- soup-multipart: Verify array bounds before accessing its members.
-Patch5:         libsoup-CVE-2025-4969.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-4945.patch boo#1243314 [email protected] 
-- add value checks for date/time parsing.
-Patch6:         libsoup-CVE-2025-4945.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-11021.patch bsc#1250562, CVE-2025-11021, 
glgo#GNOME/libsoup!482 [email protected] -- Ignore invalid date when 
processing cookie
-Patch7:         libsoup-CVE-2025-11021.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-12105.patch bsc#1252555 [email protected] 
-- fix use after free caused by 'finishing' queued item twice.
-Patch8:         libsoup-CVE-2025-12105.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2025-14523.patch bsc#1254876, CVE-2025-14523, 
glgo#GNOME/libsoup!491 [email protected] -- Reject duplicated Host in headers
-Patch9:         libsoup-CVE-2025-14523.patch
+
 # PATCH-FIX-UPSTREAM libsoup-CVE-2026-0719.patch bsc#1256399, CVE-2026-0719, 
glgo#GNOME/libsoup!493 [email protected] -- Fix overflow for password md4sum
 Patch10:        libsoup-CVE-2026-0719.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2026-0716.patch bsc#1256418, CVE-2026-0716, 
glgo#GNOME/libsoup!494 [email protected] -- Fix out-of-bounds read for 
websocket
-Patch11:        libsoup-CVE-2026-0716.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2026-1536.patch bsc#1257440, CVE-2026-1536, 
glgo#GNOME/libsoup/commit/5c1a2e9c [email protected] -- Always validate the 
headers value when coming from untrusted source
-Patch12:        libsoup-CVE-2026-1536.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2026-1761.patch bsc#1257598, CVE-2026-1761, 
glgo#GNOME/libsoup!496 [email protected] -- multipart: check length of bytes read 
soup_filter_input_stream_read_until()
-Patch13:        libsoup-CVE-2026-1761.patch
+
 # PATCH-FIX-OPENSUSE libsoup-CVE-2025-32049.patch bsc#1240751 [email protected] 
-- add size limit for total message size.
 Patch14:        libsoup-CVE-2025-32049.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2026-2443.patch bsc#1243170 [email protected] 
-- fix out-of-bounds read when processing range headers.
-Patch15:        libsoup-CVE-2026-2443.patch
-# PATCH-FIX-UPSTREAM libsoup-CVE-2026-2369.patch bsc#1258120 [email protected] 
-- handle potential underflow in the content sniffer.
-Patch16:        libsoup-CVE-2026-2369.patch
+
+# PATCH-FIX-UPSTREAM libsoup-CVE-2026-2708.patch bsc#1258508 [email protected] 
-- do not allow adding multiple content length values to headers.
+Patch17:        libsoup-CVE-2026-2708.patch
 
 BuildRequires:  glib-networking
 BuildRequires:  meson >= 0.53

++++++ _service ++++++
--- /var/tmp/diff_new_pack.FoGJwC/_old  2026-02-24 15:37:47.188393349 +0100
+++ /var/tmp/diff_new_pack.FoGJwC/_new  2026-02-24 15:37:47.220394673 +0100
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://gitlab.gnome.org/GNOME/libsoup.git</param>
-    <param name="revision">3.6.5</param>
+    <param name="revision">3.6.6</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">v?(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ libsoup-3.6.5.obscpio -> libsoup-3.6.6.obscpio ++++++
++++ 7674 lines of diff (skipped)

++++++ libsoup-CVE-2025-11021.patch -> libsoup-CVE-2026-2708.patch ++++++
--- /work/SRC/openSUSE:Factory/libsoup/libsoup-CVE-2025-11021.patch     
2025-10-18 14:35:32.424710141 +0200
+++ /work/SRC/openSUSE:Factory/.libsoup.new.1977/libsoup-CVE-2026-2708.patch    
2026-02-24 15:37:43.104224364 +0100
@@ -1,49 +1,211 @@
-diff --unified --recursive --text --new-file --color 
libsoup-3.6.5/libsoup/cookies/soup-cookie.c 
libsoup-3.6.5.new/libsoup/cookies/soup-cookie.c
---- libsoup-3.6.5/libsoup/cookies/soup-cookie.c        2025-03-22 
02:30:16.000000000 +0800
-+++ libsoup-3.6.5.new/libsoup/cookies/soup-cookie.c    2025-10-16 
11:11:23.233860890 +0800
-@@ -758,12 +758,13 @@
- 
-       if (cookie->expires) {
-               char *timestamp;
--
--              g_string_append (header, "; expires=");
-               timestamp = soup_date_time_to_string (cookie->expires,
-                                                     SOUP_DATE_COOKIE);
--              g_string_append (header, timestamp);
--              g_free (timestamp);
-+                if (timestamp) {
-+                        g_string_append (header, "; expires=");
-+                        g_string_append (header, timestamp);
-+                        g_free (timestamp);
+From e032d3e9b0a27d10597398023532dd8f9b6654cf Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <[email protected]>
+Date: Tue, 17 Feb 2026 16:39:26 +0100
+Subject: [PATCH] Do not allow adding multiple content length values to headers
+
+Closes #500
+---
+ libsoup/soup-message-headers.c | 27 ++++++++++++++
+ tests/header-parsing-test.c    | 50 +++++++++++++++++++++++++-
+ tests/server-test.c            | 64 ++++++++++++++++++++++++++++++++++
+ 3 files changed, 140 insertions(+), 1 deletion(-)
+
+diff -urp libsoup-3.6.6.orig/libsoup/soup-message-headers.c 
libsoup-3.6.6/libsoup/soup-message-headers.c
+--- libsoup-3.6.6.orig/libsoup/soup-message-headers.c  2026-02-20 
10:17:04.610154739 -0600
++++ libsoup-3.6.6/libsoup/soup-message-headers.c       2026-02-20 
10:18:22.593721498 -0600
+@@ -269,6 +269,33 @@ soup_message_headers_append_common (Soup
+                 return FALSE;
+         }
+ 
++        if (name == SOUP_HEADER_CONTENT_LENGTH) {
++                /* RFC 9110 - 7.7. Content-Length
++                 * If a message is received that has a Content-Length header 
field value consisting of
++                 * the same decimal value as a comma-separated list (Section 
5.7.1) — for example,
++                 * "Content-Length: 42, 42" — indicating that duplicate 
Content-Length header fields have
++                 * been generated or combined by an upstream message 
processor, then the recipient must either
++                 * reject the message as invalid or replace the duplicated 
field values with a single valid
++                 * Content-Length field containing that decimal value prior 
to determining the message body
++                 * length or forwarding the message.
++                 */
++                const char *content_length = 
soup_message_headers_get_one_common (hdrs, SOUP_HEADER_CONTENT_LENGTH);
++                if (content_length) {
++                        guint64 decimal_value1, decimal_value2;
++                        char *end;
++
++                        decimal_value1 = g_ascii_strtoull (content_length, 
&end, 10);
++                        if (*end)
++                                return FALSE;
++
++                        decimal_value2 = g_ascii_strtoull (value, &end, 10);
++                        if (*end)
++                                return FALSE;
++
++                        return decimal_value1 == decimal_value2;
 +                }
-       }
-       if (cookie->path) {
-               g_string_append (header, "; path=");
-diff --unified --recursive --text --new-file --color 
libsoup-3.6.5/libsoup/server/soup-server.c 
libsoup-3.6.5.new/libsoup/server/soup-server.c
---- libsoup-3.6.5/libsoup/server/soup-server.c 2025-03-22 02:30:16.000000000 
+0800
-+++ libsoup-3.6.5.new/libsoup/server/soup-server.c     2025-10-16 
11:12:03.270673884 +0800
-@@ -852,6 +852,11 @@
- 
-       date = g_date_time_new_now_utc ();
-       date_string = soup_date_time_to_string (date, SOUP_DATE_HTTP);
-+      if (!date_string) {
-+              g_date_time_unref (date);
-+              return;
-+      }
-+
-       soup_message_headers_replace_common (headers, SOUP_HEADER_DATE, 
date_string);
-       g_free (date_string);
-       g_date_time_unref (date);
-diff --unified --recursive --text --new-file --color 
libsoup-3.6.5/libsoup/soup-date-utils.c 
libsoup-3.6.5.new/libsoup/soup-date-utils.c
---- libsoup-3.6.5/libsoup/soup-date-utils.c    2025-03-22 02:30:16.000000000 
+0800
-+++ libsoup-3.6.5.new/libsoup/soup-date-utils.c        2025-10-16 
11:11:23.234306968 +0800
-@@ -92,6 +92,9 @@
-                * @date if it's non-UTC.
-                */
-               GDateTime *utcdate = g_date_time_to_utc (date);
-+                if (!utcdate)
-+                        return NULL;
++        }
++
+         if (trusted_value == SOUP_HEADER_VALUE_UNTRUSTED && 
!is_valid_header_value (value)) {
+                 g_warning ("soup_message_headers_append: Rejecting bad value 
'%s'", value);
+                 return FALSE;
+diff -urp libsoup-3.6.6.orig/tests/header-parsing-test.c 
libsoup-3.6.6/tests/header-parsing-test.c
+--- libsoup-3.6.6.orig/tests/header-parsing-test.c     2026-02-20 
10:17:04.623155000 -0600
++++ libsoup-3.6.6/tests/header-parsing-test.c  2026-02-20 10:18:22.594721518 
-0600
+@@ -368,6 +368,22 @@ static struct RequestTest {
+         }, 0
+       },
+ 
++        { "Duplicate Content-Length with the same value", NULL,
++          "POST / HTTP/1.1\r\nContent-Length: 4\r\nContent-Length: 4\r\n",
++          -1,
++          SOUP_STATUS_OK,
++          "POST", "/", SOUP_HTTP_1_1,
++          { { "Content-Length", "4" } }, 0
++        },
++
++        { "Duplicate Content-Length with the same decimal value", NULL,
++          "POST / HTTP/1.1\r\nContent-Length: 04\r\nContent-Length: 4\r\n",
++          -1,
++          SOUP_STATUS_OK,
++          "POST", "/", SOUP_HTTP_1_1,
++          { { "Content-Length", "04" } }, 0
++        },
++
+       /************************/
+       /*** INVALID REQUESTS ***/
+       /************************/
+@@ -507,7 +523,16 @@ static struct RequestTest {
+         NULL, NULL, -1,
+         { { NULL } },
+         G_LOG_LEVEL_WARNING
+-      }
++      },
++
++        { "Duplicate Content-Length with different value",
++          "https://gitlab.gnome.org/GNOME/libsoup/-/issues/500";,
++          "POST / HTTP/1.1\r\nContent-Length: 2\r\nContent-Length: 4\r\n",
++          -1,
++          SOUP_STATUS_BAD_REQUEST,
++          NULL, NULL, -1,
++          { { NULL } }, 0
++        }
+ };
+ static const int num_reqtests = G_N_ELEMENTS (reqtests);
+ 
+@@ -1475,6 +1500,28 @@ do_append_duplicate_host_test (void)
+       soup_message_headers_unref (hdrs);
+ }
+ 
++static void
++do_append_duplicate_content_length_test (void)
++{
++        SoupMessageHeaders *hdrs;
++        const char *list_value;
++
++        hdrs = soup_message_headers_new (SOUP_MESSAGE_HEADERS_REQUEST);
++        soup_message_headers_append (hdrs, "Content-Length", "42");
++
++        /* Inserting the same value doesn't generate a list */
++        soup_message_headers_append (hdrs, "Content-Length", "42");
++        list_value = soup_message_headers_get_list (hdrs, "Content-Length");
++        g_assert_cmpstr (list_value, ==, "42");
++
++        /* Inserting a different value does nothing */
++        soup_message_headers_append (hdrs, "Content-Length", "45");
++        list_value = soup_message_headers_get_list (hdrs, "Content-Length");
++        g_assert_cmpstr (list_value, ==, "42");
++
++        soup_message_headers_unref (hdrs);
++}
 +
-                 char *date_format;
-                 char *formatted_date;
+ int
+ main (int argc, char **argv)
+ {
+@@ -1491,6 +1538,7 @@ main (int argc, char **argv)
+       g_test_add_func ("/header-parsing/append-param", do_append_param_tests);
+       g_test_add_func ("/header-parsing/bad", do_bad_header_tests);
+       g_test_add_func ("/header-parsing/append-duplicate-host", 
do_append_duplicate_host_test);
++        g_test_add_func ("/header-parsing/append-duplicate-content-length", 
do_append_duplicate_content_length_test);
+ 
+       ret = g_test_run ();
+ 
+diff -urp libsoup-3.6.6.orig/tests/server-test.c 
libsoup-3.6.6/tests/server-test.c
+--- libsoup-3.6.6.orig/tests/server-test.c     2026-02-20 10:17:04.636155262 
-0600
++++ libsoup-3.6.6/tests/server-test.c  2026-02-20 10:18:22.595696993 -0600
+@@ -1422,6 +1422,68 @@ do_chunked_test (ServerData *sd, gconstp
+         }
+ }
+ 
++static void
++do_multiple_content_length_test (ServerData *sd, gconstpointer test_data)
++{
++        gint i;
++        struct {
++                const char *description;
++                const char *test;
++                const char *expected_response;
++        } tests[] = {
++                { "Double Content-Length with different value", "POST / 
HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 0\r\nContent-Length: 
4\r\nConnection: close\r\n\r\n\r\nABCD", "HTTP/1.0 400 Bad Request" },
++                { "Double Content-Length with the same value", "POST / 
HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 4\r\nContent-Length: 
4\r\nConnection: close\r\n\r\n\r\nABCD", "HTTP/1.1 200 OK" },
++        };
++
++        sd->server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
++        sd->base_uri = soup_test_server_get_uri (sd->server, "http", NULL);
++        server_add_handler (sd, NULL, server_callback, NULL, NULL);
++
++        for (i = 0; i < G_N_ELEMENTS (tests); i++) {
++                GSocketClient *client;
++                GSocketConnection *conn;
++                GInputStream *input;
++                GOutputStream *output;
++                gsize nwritten;
++                char buffer[4096];
++                gssize nread;
++                GString *response;
++                const char *boundary;
++                GError *error = NULL;
++
++                debug_printf (1, "  %s\n", tests[i].description);
++
++                client = g_socket_client_new ();
++                conn = g_socket_client_connect_to_host (client, 
g_uri_get_host (sd->base_uri), g_uri_get_port (sd->base_uri), NULL, &error);
++                g_assert_no_error (error);
++
++                output = g_io_stream_get_output_stream (G_IO_STREAM (conn));
++                g_output_stream_write_all (output, tests[i].test, strlen 
(tests[i].test), &nwritten, NULL, &error);
++                g_assert_no_error (error);
++                g_assert_cmpuint (nwritten, ==, strlen (tests[i].test));
++                g_output_stream_flush (output, NULL, &error);
++                g_assert_no_error (error);
++
++                response = g_string_new (NULL);
++
++                input = g_io_stream_get_input_stream (G_IO_STREAM (conn));
++                do {
++                        nread = g_input_stream_read (input, buffer, 
sizeof(buffer), NULL, NULL);
++                        if (nread >= 0)
++                                response = g_string_append_len (response, 
(const char *)buffer, nread);
++                } while (nread > 0);
++
++                boundary = strstr (response->str, "\r\n");
++                g_assert_nonnull (boundary);
++                response = g_string_truncate (response, response->len - 
strlen (boundary));
++                g_assert_cmpstr (response->str, ==, 
tests[i].expected_response);
++                g_string_free (response, TRUE);
++
++                g_object_unref (conn);
++                g_object_unref (client);
++        }
++}
++
+ int
+ main (int argc, char **argv)
+ {
+@@ -1464,6 +1526,8 @@ main (int argc, char **argv)
+                   server_setup, do_steal_connect_test, server_teardown);
+         g_test_add ("/server/chunked", ServerData, NULL,
+                     NULL, do_chunked_test, server_teardown);
++        g_test_add ("/server/multiple-content-length", ServerData, NULL,
++                    NULL, do_multiple_content_length_test, server_teardown);
+ 
+       ret = g_test_run ();
  

++++++ libsoup.obsinfo ++++++
--- /var/tmp/diff_new_pack.FoGJwC/_old  2026-02-24 15:37:48.756458228 +0100
+++ /var/tmp/diff_new_pack.FoGJwC/_new  2026-02-24 15:37:48.812460546 +0100
@@ -1,5 +1,5 @@
 name: libsoup
-version: 3.6.5
-mtime: 1742581816
-commit: 766e17528251c9b696a6076300ac61adc95536ac
+version: 3.6.6
+mtime: 1771107212
+commit: 25eac153004f777581ca2d95e31a02ca96844332
 

Reply via email to