From 160904086e0189dab862a09b801048ad8a382274 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 5 Nov 2019 16:26:46 -0500 Subject: [PATCH] import evolution-data-server-3.28.5-11.el8 --- ...ion-data-server-3.28.5-cve-2019-3890.patch | 18 ++++ ...3.28.5-tests-cal-client-get-revision.patch | 91 ++++++++++++++----- SPECS/evolution-data-server.spec | 12 ++- 3 files changed, 97 insertions(+), 24 deletions(-) create mode 100644 SOURCES/evolution-data-server-3.28.5-cve-2019-3890.patch diff --git a/SOURCES/evolution-data-server-3.28.5-cve-2019-3890.patch b/SOURCES/evolution-data-server-3.28.5-cve-2019-3890.patch new file mode 100644 index 0000000..5a19759 --- /dev/null +++ b/SOURCES/evolution-data-server-3.28.5-cve-2019-3890.patch @@ -0,0 +1,18 @@ +diff -up evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c.cve-2019-3890 evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c +--- evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c.cve-2019-3890 2019-04-15 09:25:49.273786456 +0200 ++++ evolution-data-server-3.28.5/src/libedataserver/e-data-server-util.c 2019-04-15 09:35:00.784778830 +0200 +@@ -3147,11 +3147,13 @@ e_util_can_use_collection_as_credential_ + if (can_use_collection) { + gchar *method_source, *method_collection; + +- /* Also check the method; if different, then rather not use the collection */ ++ /* Also check the method; if different, then rather not use the collection. ++ Consider 'none' method on the child as the same as the collection method. */ + method_source = e_source_authentication_dup_method (auth_source); + method_collection = e_source_authentication_dup_method (auth_collection); + + can_use_collection = !method_source || !method_collection || ++ g_ascii_strcasecmp (method_source, "none") == 0 || + g_ascii_strcasecmp (method_source, method_collection) == 0; + + g_free (method_source); diff --git a/SOURCES/evolution-data-server-3.28.5-tests-cal-client-get-revision.patch b/SOURCES/evolution-data-server-3.28.5-tests-cal-client-get-revision.patch index 33898c2..2c776fc 100644 --- a/SOURCES/evolution-data-server-3.28.5-tests-cal-client-get-revision.patch +++ b/SOURCES/evolution-data-server-3.28.5-tests-cal-client-get-revision.patch @@ -1,22 +1,55 @@ -From 5eaebbe5c1fd81baf93c2f8d3aeafa49abc92af6 Mon Sep 17 00:00:00 2001 -From: Milan Crha -Date: Tue, 13 Nov 2018 10:36:37 +0100 -Subject: test-cal-client-get-revision could fail due to delayed D-Bus property - change notification - -The test had been mostly working, except cases when the delivery -of a D-Bus property change signal had been delayed. Then the value -on the client side was not the same as the value on the server side. -There's a very similar test for EBookClient, which does slightly more -things, which gives D-Bus enough time to deliver the property change -to the client, thus this change adds the component removal to address it. - -diff --git a/tests/libebook/client/test-book-client-get-revision.c b/tests/libebook/client/test-book-client-get-revision.c -index 601c5e8c5..8995f0659 100644 ---- a/tests/libebook/client/test-book-client-get-revision.c -+++ b/tests/libebook/client/test-book-client-get-revision.c -@@ -50,7 +50,7 @@ get_revision_compare_cycle (EBookClient *client) +diff -up evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c.test-cal-client-get-revision evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c +--- evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200 ++++ evolution-data-server-3.28.5/src/addressbook/libedata-book/e-data-book.c 2019-05-23 19:31:07.484064234 +0200 +@@ -1856,6 +1856,12 @@ e_data_book_report_backend_property_chan + g_strfreev (strv); + } ++ /* Ensure the property change signal on the D-Bus is invoked immediately, not on idle */ ++ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (dbus_interface)); ++ ++ if (book->priv->connection && !g_dbus_connection_is_closed (book->priv->connection)) ++ g_dbus_connection_flush_sync (book->priv->connection, NULL, NULL); ++ + /* Disregard anything else. */ + } + +diff -up evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c.test-cal-client-get-revision evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c +--- evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200 ++++ evolution-data-server-3.28.5/src/calendar/libedata-cal/e-data-cal.c 2019-05-23 19:31:07.485064234 +0200 +@@ -2470,6 +2470,12 @@ e_data_cal_report_backend_property_chang + if (g_str_equal (prop_name, CAL_BACKEND_PROPERTY_DEFAULT_OBJECT)) + e_dbus_calendar_set_default_object (dbus_interface, prop_value); + ++ /* Ensure the property change signal on the D-Bus is invoked immediately, not on idle */ ++ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (dbus_interface)); ++ ++ if (cal->priv->connection && !g_dbus_connection_is_closed (cal->priv->connection)) ++ g_dbus_connection_flush_sync (cal->priv->connection, NULL, NULL); ++ + /* Disregard anything else. */ + } + +diff -up evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c.test-cal-client-get-revision evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c +--- evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200 ++++ evolution-data-server-3.28.5/tests/libebook/client/test-book-client-get-revision.c 2019-05-23 19:31:07.485064234 +0200 +@@ -48,9 +48,22 @@ get_revision_compare_cycle (EBookClient + if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error)) + g_error ("Error getting book revision: %s", error->message); + ++ /* Sometimes, kind of rarely, the D-Bus property change is not delivered on time, ++ thus give it some time to be received and processed. */ ++ if (g_strcmp0 (revision_before, revision_after) == 0) { ++ g_message (" D-Bus property 'revision' change not received yet, trying to wait a bit"); ++ ++ g_usleep (G_USEC_PER_SEC / 2); ++ ++ g_clear_pointer (&revision_after, g_free); ++ ++ if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error)) ++ g_error ("Error getting book revision: %s", error->message); ++ } ++ g_assert (revision_before); g_assert (revision_after); - g_assert (strcmp (revision_before, revision_after) != 0); @@ -24,11 +57,10 @@ index 601c5e8c5..8995f0659 100644 g_message ( "Passed cycle, revision before '%s' revision after '%s'", -diff --git a/tests/libecal/client/test-cal-client-get-revision.c b/tests/libecal/client/test-cal-client-get-revision.c -index 305f15f0b..96887a360 100644 ---- a/tests/libecal/client/test-cal-client-get-revision.c -+++ b/tests/libecal/client/test-cal-client-get-revision.c -@@ -42,18 +42,21 @@ get_revision_compare_cycle (ECalClient *client) +diff -up evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c.test-cal-client-get-revision evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c +--- evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c.test-cal-client-get-revision 2018-07-30 15:17:06.000000000 +0200 ++++ evolution-data-server-3.28.5/tests/libecal/client/test-cal-client-get-revision.c 2019-05-23 19:31:07.485064234 +0200 +@@ -42,18 +42,34 @@ get_revision_compare_cycle (ECalClient * if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_before, NULL, &error)) @@ -45,6 +77,19 @@ index 305f15f0b..96887a360 100644 &revision_after, NULL, &error)) - g_error ("Error getting book revision: %s", error->message); + g_error ("Error getting calendar revision: %s", error->message); ++ ++ /* Sometimes, kind of rarely, the D-Bus property change is not delivered on time, ++ thus give it some time to be received and processed. */ ++ if (g_strcmp0 (revision_before, revision_after) == 0) { ++ g_message (" D-Bus property 'revision' change not received yet, trying to wait a bit"); ++ ++ g_usleep (G_USEC_PER_SEC / 2); ++ ++ g_clear_pointer (&revision_after, g_free); ++ ++ if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error)) ++ g_error ("Error getting book revision: %s", error->message); ++ } g_assert (revision_before); g_assert (revision_after); diff --git a/SPECS/evolution-data-server.spec b/SPECS/evolution-data-server.spec index 119bfe3..1a7e2e7 100644 --- a/SPECS/evolution-data-server.spec +++ b/SPECS/evolution-data-server.spec @@ -32,7 +32,7 @@ Name: evolution-data-server Version: 3.28.5 -Release: 9%{?dist} +Release: 11%{?dist} Group: System Environment/Libraries Summary: Backend data server for Evolution License: LGPLv2+ @@ -73,6 +73,9 @@ Patch06: evolution-data-server-3.28.5-tests-cal-client-get-revision.patch # RH bug #1655030 Patch07: evolution-data-server-3.28.5-vcard-attr-param-struct-reff.patch +# RH bug #1696763 +Patch08: evolution-data-server-3.28.5-cve-2019-3890.patch + ### Dependencies ### Requires: dconf @@ -199,6 +202,7 @@ the functionality of the installed %{name} package. %patch05 -p1 -b .vcard-remove-param-value %patch06 -p1 -b .tests-cal-client-get-revision %patch07 -p1 -b .vcard-attr-param-struct-reff +%patch08 -p1 -b .cve-2019-3890 %build @@ -460,6 +464,12 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : %{_datadir}/installed-tests %changelog +* Mon May 27 2019 Milan Crha - 3.28.5-11 +- Update patch for RH bug #1713619 (test-cal-client-get-revision could fail due to delayed D-Bus property change notification) + +* Mon Apr 15 2019 Milan Crha - 3.28.5-10 +- Add patch related to evolution-ews' CVE-2019-3890 (RH bug #1696763) + * Tue Dec 04 2018 Milan Crha - 3.28.5-9 - Update patch for RH bug #1654203 (Make tests retry when factory doesn't know about added ESource yet)