summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-46420.patch61
-rw-r--r--meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb1
2 files changed, 62 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-46420.patch b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-46420.patch
new file mode 100644
index 0000000000..c970661694
--- /dev/null
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-46420.patch
@@ -0,0 +1,61 @@
1From 81e03c538d6a102406114567f4f1c468033ce2e4 Mon Sep 17 00:00:00 2001
2From: Patrick Griffis <pgriffis@igalia.com>
3Date: Thu, 26 Dec 2024 18:31:42 -0600
4Subject: [PATCH] soup_header_parse_quality_list: Fix leak
5
6When iterating over the parsed list we now steal the allocated strings that we want and then free_full the list which may contain remaining strings.
7
8CVE: CVE-2025-46420
9Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/421/diffs?commit_id=c9083869ec2a3037e6df4bd86b45c419ba295f8e]
10
11 Signed-off-by: Changqing Li <changqing.li@windriver.com>
12---
13 libsoup/soup-headers.c | 11 +++++------
14 1 file changed, 5 insertions(+), 6 deletions(-)
15
16diff --git a/libsoup/soup-headers.c b/libsoup/soup-headers.c
17index 87bb3dc..9707ca0 100644
18--- a/libsoup/soup-headers.c
19+++ b/libsoup/soup-headers.c
20@@ -528,7 +528,7 @@ soup_header_parse_quality_list (const char *header, GSList **unacceptable)
21 GSList *unsorted;
22 QualityItem *array;
23 GSList *sorted, *iter;
24- char *item, *semi;
25+ char *semi;
26 const char *param, *equal, *value;
27 double qval;
28 int n;
29@@ -541,9 +541,8 @@ soup_header_parse_quality_list (const char *header, GSList **unacceptable)
30 unsorted = soup_header_parse_list (header);
31 array = g_new0 (QualityItem, g_slist_length (unsorted));
32 for (iter = unsorted, n = 0; iter; iter = iter->next) {
33- item = iter->data;
34 qval = 1.0;
35- for (semi = strchr (item, ';'); semi; semi = strchr (semi + 1, ';')) {
36+ for (semi = strchr (iter->data, ';'); semi; semi = strchr (semi + 1, ';')) {
37 param = skip_lws (semi + 1);
38 if (*param != 'q')
39 continue;
40@@ -575,15 +574,15 @@ soup_header_parse_quality_list (const char *header, GSList **unacceptable)
41 if (qval == 0.0) {
42 if (unacceptable) {
43 *unacceptable = g_slist_prepend (*unacceptable,
44- item);
45+ g_steal_pointer (&iter->data));
46 }
47 } else {
48- array[n].item = item;
49+ array[n].item = g_steal_pointer (&iter->data);
50 array[n].qval = qval;
51 n++;
52 }
53 }
54- g_slist_free (unsorted);
55+ g_slist_free_full (unsorted, g_free);
56
57 qsort (array, n, sizeof (QualityItem), sort_by_qval);
58 sorted = NULL;
59--
602.34.1
61
diff --git a/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb b/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
index cda6a3b00f..7d9cc222f5 100644
--- a/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
+++ b/meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
@@ -24,6 +24,7 @@ SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \
24 file://CVE-2024-52530.patch \ 24 file://CVE-2024-52530.patch \
25 file://CVE-2025-32906.patch \ 25 file://CVE-2025-32906.patch \
26 file://CVE-2025-32914.patch \ 26 file://CVE-2025-32914.patch \
27 file://CVE-2025-46420.patch \
27" 28"
28SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13" 29SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13"
29 30