Hello community,
here is the log from the commit of package evolution-data-server for
openSUSE:Factory checked in at 2018-02-07 18:38:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old)
and /work/SRC/openSUSE:Factory/.evolution-data-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-data-server"
Wed Feb 7 18:38:34 2018 rev:183 rq:573056 version:3.26.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes
2018-01-16 09:28:45.475910425 +0100
+++
/work/SRC/openSUSE:Factory/.evolution-data-server.new/evolution-data-server.changes
2018-02-07 18:38:35.676104962 +0100
@@ -1,0 +2,13 @@
+Mon Feb 5 13:17:05 UTC 2018 - [email protected]
+
+- Update to version 3.26.5:
+ + Prevent early free of an ESource when it has pending
+ operations.
+ + IMAPx:
+ - Select destination mailbox only when permanentflags not known
+ yet.
+ - Sort array of UIDs before syncing changes to the server.
+ + Prevent passing NULL ldap handle into LDAP functions ][.
+ + Bugs fixed: bgo#792513, bgo#789522.
+
+-------------------------------------------------------------------
Old:
----
evolution-data-server-3.26.4.tar.xz
New:
----
evolution-data-server-3.26.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.PZTy2g/_old 2018-02-07 18:38:36.452068610 +0100
+++ /var/tmp/diff_new_pack.PZTy2g/_new 2018-02-07 18:38:36.452068610 +0100
@@ -32,7 +32,7 @@
Name: evolution-data-server
%define _evo_version 3.26
-Version: 3.26.4
+Version: 3.26.5
Release: 0
Summary: Evolution Data Server
License: LGPL-2.1+
++++++ evolution-data-server-3.26.4.tar.xz ->
evolution-data-server-3.26.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/evolution-data-server-3.26.4/CMakeLists.txt
new/evolution-data-server-3.26.5/CMakeLists.txt
--- old/evolution-data-server-3.26.4/CMakeLists.txt 2018-01-08
11:05:37.000000000 +0100
+++ new/evolution-data-server-3.26.5/CMakeLists.txt 2018-02-05
11:57:20.000000000 +0100
@@ -4,7 +4,7 @@
cmake_policy(VERSION 3.1)
project(evolution-data-server
- VERSION 3.26.4
+ VERSION 3.26.5
LANGUAGES C CXX)
set(PROJECT_BUGREPORT
"http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution-Data-Server")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/evolution-data-server-3.26.4/NEWS
new/evolution-data-server-3.26.5/NEWS
--- old/evolution-data-server-3.26.4/NEWS 2018-01-08 11:05:37.000000000
+0100
+++ new/evolution-data-server-3.26.5/NEWS 2018-02-05 11:57:20.000000000
+0100
@@ -1,3 +1,16 @@
+Evolution-Data-Server 3.26.5 2018-02-05
+---------------------------------------
+
+Bug Fixes:
+ Bug 792513 - [IMAPx] Deadlock after deleting messages (with real Trash)
(Milan Crha)
+ Bug 789522 - Decode of empty base64 encoded part causes runtime
warnings (Milan Crha)
+
+Miscellaneous:
+ Prevent early free of an ESource when it has pending operations (Milan
Crha)
+ [IMAPx] Select destination mailbox only when permanentflags not known
yet (Milan Crha)
+ Prevent passing NULL ldap handle into LDAP functions ][ (Milan Crha)
+ [IMAPx] Sort array of UIDs before syncing changes to the server (Milan
Crha)
+
Evolution-Data-Server 3.26.4 2018-01-08
---------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/evolution-data-server-3.26.4/src/addressbook/backends/ldap/e-book-backend-ldap.c
new/evolution-data-server-3.26.5/src/addressbook/backends/ldap/e-book-backend-ldap.c
---
old/evolution-data-server-3.26.4/src/addressbook/backends/ldap/e-book-backend-ldap.c
2018-01-08 11:05:37.000000000 +0100
+++
new/evolution-data-server-3.26.5/src/addressbook/backends/ldap/e-book-backend-ldap.c
2018-02-05 11:57:20.000000000 +0100
@@ -3989,8 +3989,8 @@
ldap_memfree (dn);
if (ldap_uid) *ldap_uid = NULL;
- for (attr = ldap_first_attribute (bl->priv->ldap, e, &ber); attr;
- attr = ldap_next_attribute (bl->priv->ldap, e, ber)) {
+ for (attr = ldap_first_attribute (bl->priv->ldap, e, &ber); attr &&
bl->priv->ldap;
+ attr = bl->priv->ldap ? ldap_next_attribute (bl->priv->ldap, e,
ber) : NULL) {
gint i;
struct prop_info *info = NULL;
gchar **values;
@@ -4032,7 +4032,6 @@
if (info) {
if (info->prop_type & PROP_WRITE_ONLY) {
- g_rec_mutex_lock
(&eds_ldap_handler_lock);
continue;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/evolution-data-server-3.26.4/src/camel/camel-mime-filter-basic.c
new/evolution-data-server-3.26.5/src/camel/camel-mime-filter-basic.c
--- old/evolution-data-server-3.26.4/src/camel/camel-mime-filter-basic.c
2018-01-08 11:05:37.000000000 +0100
+++ new/evolution-data-server-3.26.5/src/camel/camel-mime-filter-basic.c
2018-02-05 11:57:20.000000000 +0100
@@ -229,8 +229,10 @@
g_return_if_fail (newlen <= (len + 2) * 2 + 62);
break;
case CAMEL_MIME_FILTER_BASIC_BASE64_DEC:
- /* output can't possibly exceed the input size */
- camel_mime_filter_set_size (mime_filter, len, FALSE);
+ /* Output can't possibly exceed the input size, but add 1,
+ to make sure the mime_filter->outbuf will not be NULL,
+ in case the input stream is empty. */
+ camel_mime_filter_set_size (mime_filter, len + 1, FALSE);
newlen = g_base64_decode_step (
in, len,
(guchar *) mime_filter->outbuf,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/evolution-data-server-3.26.4/src/camel/providers/imapx/camel-imapx-server.c
new/evolution-data-server-3.26.5/src/camel/providers/imapx/camel-imapx-server.c
---
old/evolution-data-server-3.26.4/src/camel/providers/imapx/camel-imapx-server.c
2018-01-08 11:05:37.000000000 +0100
+++
new/evolution-data-server-3.26.5/src/camel/providers/imapx/camel-imapx-server.c
2018-02-05 11:57:20.000000000 +0100
@@ -4306,9 +4306,11 @@
g_return_val_if_fail (CAMEL_IS_IMAPX_MAILBOX (destination), FALSE);
g_return_val_if_fail (uids != NULL, FALSE);
- /* To get permanent flags. That's okay if the "SELECT" fails here, as
it can be
- due to the folder being write-only; just ignore the error and
continue. */
- camel_imapx_server_ensure_selected_sync (is, destination, cancellable,
NULL);
+ if (camel_imapx_mailbox_get_permanentflags (destination) == ~0) {
+ /* To get permanent flags. That's okay if the "SELECT" fails
here, as it can be
+ due to the folder being write-only; just ignore the error
and continue. */
+ camel_imapx_server_ensure_selected_sync (is, destination,
cancellable, NULL);
+ }
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return FALSE;
@@ -5419,6 +5421,7 @@
return TRUE;
}
+ camel_folder_sort_uids (folder, changed_uids);
stamps = g_hash_table_new_full (g_str_hash, g_str_equal,
(GDestroyNotify) camel_pstring_free, NULL);
if (can_influence_flags) {
@@ -5451,6 +5454,8 @@
if (changed_uids->len > 20)
camel_folder_summary_prepare_fetch_all
(camel_folder_get_folder_summary (folder), NULL);
+ camel_folder_summary_lock (camel_folder_get_folder_summary (folder));
+
off_orset = on_orset = 0;
for (i = 0; i < changed_uids->len; i++) {
CamelIMAPXMessageInfo *xinfo;
@@ -5580,6 +5585,8 @@
g_clear_object (&info);
}
+ camel_folder_summary_unlock (camel_folder_get_folder_summary (folder));
+
nothing_to_do =
(on_orset == 0) &&
(off_orset == 0) &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/evolution-data-server-3.26.4/src/libedataserver/e-source.c
new/evolution-data-server-3.26.5/src/libedataserver/e-source.c
--- old/evolution-data-server-3.26.4/src/libedataserver/e-source.c
2018-01-08 11:05:37.000000000 +0100
+++ new/evolution-data-server-3.26.5/src/libedataserver/e-source.c
2018-02-05 11:57:20.000000000 +0100
@@ -137,9 +137,6 @@
GMutex connection_status_change_lock;
ESourceConnectionStatus connection_status;
- GSource *credentials_required_call;
- GMutex credentials_required_call_lock;
-
GMutex property_lock;
gchar *display_name;
@@ -913,7 +910,7 @@
g_source_set_callback (
source->priv->connection_status_change,
source_idle_connection_status_change_cb,
- source, NULL);
+ g_object_ref (source), g_object_unref);
g_source_attach (
source->priv->connection_status_change,
source->priv->main_context);
@@ -1227,6 +1224,13 @@
priv = E_SOURCE_GET_PRIVATE (object);
+ /* Lock & unlock to make sure any pending operations in other threads
+ which use this lock are already done */
+ g_rec_mutex_lock (&priv->lock);
+ g_rec_mutex_unlock (&priv->lock);
+
+ g_mutex_lock (&priv->property_lock);
+
if (priv->dbus_object != NULL) {
EDBusObject *dbus_object;
EDBusSource *dbus_source;
@@ -1245,6 +1249,8 @@
priv->dbus_object = NULL;
}
+ g_mutex_unlock (&priv->property_lock);
+
if (priv->main_context != NULL) {
g_main_context_unref (priv->main_context);
priv->main_context = NULL;
@@ -1267,14 +1273,6 @@
}
g_mutex_unlock (&priv->connection_status_change_lock);
- g_mutex_lock (&priv->credentials_required_call_lock);
- if (priv->credentials_required_call != NULL) {
- g_source_destroy (priv->credentials_required_call);
- g_source_unref (priv->credentials_required_call);
- priv->credentials_required_call = NULL;
- }
- g_mutex_unlock (&priv->credentials_required_call_lock);
-
g_hash_table_remove_all (priv->extensions);
/* Chain up to parent's dispose() method. */
@@ -1290,7 +1288,6 @@
g_mutex_clear (&priv->changed_lock);
g_mutex_clear (&priv->connection_status_change_lock);
- g_mutex_clear (&priv->credentials_required_call_lock);
g_mutex_clear (&priv->property_lock);
g_free (priv->display_name);
@@ -2436,7 +2433,6 @@
source->priv = E_SOURCE_GET_PRIVATE (source);
g_mutex_init (&source->priv->changed_lock);
g_mutex_init (&source->priv->connection_status_change_lock);
- g_mutex_init (&source->priv->credentials_required_call_lock);
g_mutex_init (&source->priv->property_lock);
source->priv->key_file = g_key_file_new ();
source->priv->extensions = extensions;
@@ -2617,7 +2613,7 @@
g_source_set_callback (
source->priv->changed,
source_idle_changed_cb,
- source, (GDestroyNotify) NULL);
+ g_object_ref (source), g_object_unref);
g_source_attach (
source->priv->changed,
source->priv->main_context);