Add patch for RH bug #2107751 (glib2's G_TLS_CERTIFICATE_FLAGS_NONE causes infinite loop)

This commit is contained in:
Milan Crha 2022-07-18 10:13:30 +02:00
parent bc819e3308
commit 0f18adfc4c
2 changed files with 57 additions and 1 deletions

View File

@ -0,0 +1,51 @@
diff --git a/src/calendar/libecal/e-cal-client.c b/src/calendar/libecal/e-cal-client.c
index 420e7186f..1ac37d4d4 100644
--- a/src/calendar/libecal/e-cal-client.c
+++ b/src/calendar/libecal/e-cal-client.c
@@ -5212,13 +5212,13 @@ e_cal_client_modify_objects_sync (ECalClient *client,
mod_flags = g_string_new (NULL);
flags_class = g_type_class_ref (E_TYPE_CAL_OBJ_MOD_TYPE);
- flags_value = g_flags_get_first_value (flags_class, mod);
- while (flags_value != NULL) {
+ for (flags_value = g_flags_get_first_value (flags_class, mod);
+ flags_value && mod;
+ flags_value = g_flags_get_first_value (flags_class, mod)) {
if (mod_flags->len > 0)
g_string_append_c (mod_flags, ':');
g_string_append (mod_flags, flags_value->value_nick);
mod &= ~flags_value->value;
- flags_value = g_flags_get_first_value (flags_class, mod);
}
strv = g_new0 (gchar *, g_slist_length (icalcomps) + 1);
@@ -5572,13 +5572,13 @@ e_cal_client_remove_objects_sync (ECalClient *client,
mod_flags = g_string_new (NULL);
flags_class = g_type_class_ref (E_TYPE_CAL_OBJ_MOD_TYPE);
- flags_value = g_flags_get_first_value (flags_class, mod);
- while (flags_value != NULL) {
+ for (flags_value = g_flags_get_first_value (flags_class, mod);
+ flags_value && mod;
+ flags_value = g_flags_get_first_value (flags_class, mod)) {
if (mod_flags->len > 0)
g_string_append_c (mod_flags, ':');
g_string_append (mod_flags, flags_value->value_nick);
mod &= ~flags_value->value;
- flags_value = g_flags_get_first_value (flags_class, mod);
}
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)"));
diff --git a/src/libedataserver/e-source.c b/src/libedataserver/e-source.c
index 31d851e21..23b82f7b1 100644
--- a/src/libedataserver/e-source.c
+++ b/src/libedataserver/e-source.c
@@ -4622,7 +4622,7 @@ e_source_invoke_credentials_required_sync (ESource *source,
flags_class = g_type_class_ref (G_TYPE_TLS_CERTIFICATE_FLAGS);
for (flags_value = g_flags_get_first_value (flags_class, certificate_errors);
- flags_value;
+ flags_value && certificate_errors;
flags_value = g_flags_get_first_value (flags_class, certificate_errors)) {
if (certificate_errors_str->len)
g_string_append_c (certificate_errors_str, ':');

View File

@ -53,12 +53,14 @@
Name: evolution-data-server
Version: 3.44.3
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Backend data server for Evolution
License: LGPLv2+
URL: https://wiki.gnome.org/Apps/Evolution
Source: http://download.gnome.org/sources/%{name}/3.44/%{name}-%{version}.tar.xz
Patch01: evolution-data-server-3.44.3-glib-none-flag.patch
Provides: evolution-webcal = %{version}
Obsoletes: evolution-webcal < 2.24.0
@ -472,6 +474,9 @@ find $RPM_BUILD_ROOT -name '*.so.*' -exec chmod +x {} \;
%{_datadir}/installed-tests
%changelog
* Mon Jul 18 2022 Milan Crha <mcrha@redhat.com> - 3.44.3-2
- Add patch for RH bug #2107751 (glib2's G_TLS_CERTIFICATE_FLAGS_NONE causes infinite loop)
* Fri Jul 01 2022 Milan Crha <mcrha@redhat.com> - 3.44.3-1
- Update to 3.44.3