diff options
author | Changqing Li <changqing.li@windriver.com> | 2025-06-13 14:54:29 +0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2025-06-13 13:11:24 -0700 |
commit | 03da2fde24ce2d92f954638336ab8ea36be0cdd8 (patch) | |
tree | c9c89c4490092210878d74117f8d5486a4d7e666 | |
parent | beaf39169615c82a3888b4d05bbe7307835c34d6 (diff) | |
download | meta-openembedded-03da2fde24ce2d92f954638336ab8ea36be0cdd8.tar.gz |
libsoup-2.4: fix CVE-2025-46420
Refer:
https://gitlab.gnome.org/GNOME/libsoup/-/issues/438
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | meta-oe/recipes-support/libsoup/libsoup-2.4/CVE-2025-46420.patch | 61 | ||||
-rw-r--r-- | meta-oe/recipes-support/libsoup/libsoup-2.4_2.74.3.bb | 1 |
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 @@ | |||
1 | From 81e03c538d6a102406114567f4f1c468033ce2e4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Patrick Griffis <pgriffis@igalia.com> | ||
3 | Date: Thu, 26 Dec 2024 18:31:42 -0600 | ||
4 | Subject: [PATCH] soup_header_parse_quality_list: Fix leak | ||
5 | |||
6 | When 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 | |||
8 | CVE: CVE-2025-46420 | ||
9 | Upstream-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 | |||
16 | diff --git a/libsoup/soup-headers.c b/libsoup/soup-headers.c | ||
17 | index 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 | -- | ||
60 | 2.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 | " |
28 | SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13" | 29 | SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13" |
29 | 30 | ||