Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package evolution-ews for openSUSE:Factory checked in at 2021-08-25 20:56:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/evolution-ews (Old) and /work/SRC/openSUSE:Factory/.evolution-ews.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-ews" Wed Aug 25 20:56:13 2021 rev:116 rq:913684 version:3.40.4 Changes: -------- --- /work/SRC/openSUSE:Factory/evolution-ews/evolution-ews.changes 2021-07-21 19:06:53.707345189 +0200 +++ /work/SRC/openSUSE:Factory/.evolution-ews.new.1899/evolution-ews.changes 2021-08-25 20:56:35.353288720 +0200 @@ -1,0 +2,8 @@ +Fri Aug 13 15:29:37 UTC 2021 - Bj??rn Lie <[email protected]> + +- Update to version 3.40.4: + + ESoupAuthNegotiate: + - Improve thread safety. + - Fix two memory leaks. + +------------------------------------------------------------------- Old: ---- evolution-ews-3.40.3.tar.xz New: ---- evolution-ews-3.40.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ evolution-ews.spec ++++++ --- /var/tmp/diff_new_pack.3h0SfI/_old 2021-08-25 20:56:35.885288021 +0200 +++ /var/tmp/diff_new_pack.3h0SfI/_new 2021-08-25 20:56:35.889288016 +0200 @@ -20,7 +20,7 @@ %define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+') Name: evolution-ews -Version: 3.40.3 +Version: 3.40.4 Release: 0 Summary: Exchange Connector for Evolution, compatible with Exchange 2007 and later License: LGPL-2.1-only ++++++ evolution-ews-3.40.3.tar.xz -> evolution-ews-3.40.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.40.3/CMakeLists.txt new/evolution-ews-3.40.4/CMakeLists.txt --- old/evolution-ews-3.40.3/CMakeLists.txt 2021-07-09 08:54:45.000000000 +0200 +++ new/evolution-ews-3.40.4/CMakeLists.txt 2021-08-13 11:56:55.000000000 +0200 @@ -4,7 +4,7 @@ cmake_policy(VERSION 3.1) project(evolution-ews - VERSION 3.40.3 + VERSION 3.40.4 LANGUAGES C) set(PROJECT_BUGREPORT "https://gitlab.gnome.org/GNOME/evolution-ews/issues/") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.40.3/NEWS new/evolution-ews-3.40.4/NEWS --- old/evolution-ews-3.40.3/NEWS 2021-07-09 08:54:45.000000000 +0200 +++ new/evolution-ews-3.40.4/NEWS 2021-08-13 11:56:55.000000000 +0200 @@ -1,3 +1,10 @@ +Evolution-EWS 3.40.4 2021-08-13 +------------------------------- + +Miscellaneous: + ESoupAuthNegotiate: Improve thread safety (Milan Crha) + ESoupAuthNegotiate: Fix two memory leaks (Milan Crha) + Evolution-EWS 3.40.3 2021-07-09 ------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.40.3/src/EWS/common/e-soup-auth-negotiate.c new/evolution-ews-3.40.4/src/EWS/common/e-soup-auth-negotiate.c --- old/evolution-ews-3.40.3/src/EWS/common/e-soup-auth-negotiate.c 2021-07-09 08:54:45.000000000 +0200 +++ new/evolution-ews-3.40.4/src/EWS/common/e-soup-auth-negotiate.c 2021-08-13 11:56:55.000000000 +0200 @@ -10,6 +10,7 @@ #include <camel/camel.h> #include <libsoup/soup.h> +#include <libedataserver/libedataserver.h> #include "e-soup-auth-negotiate.h" /* @@ -37,6 +38,7 @@ gint challenge_available; } SoupMessageState; +G_LOCK_DEFINE_STATIC (msgs_table); static GHashTable *msgs_table; static gchar * @@ -95,9 +97,13 @@ static void e_soup_auth_negotiate_delete_context (SoupMessage *msg, gpointer user_data) { - SoupMessageState *state = g_hash_table_lookup (msgs_table, msg); + SoupMessageState *state; + G_LOCK (msgs_table); + state = g_hash_table_lookup (msgs_table, msg); g_hash_table_remove (msgs_table, msg); + G_UNLOCK (msgs_table); + g_signal_handlers_disconnect_by_func ( msg, G_CALLBACK (e_soup_auth_negotiate_message_finished), user_data); @@ -115,12 +121,17 @@ /* * Feed the remaining GSSAPI data through SASL */ - SoupAuth *auth = SOUP_AUTH (user_data); + GWeakRef *weak_ref = user_data; + SoupAuth *auth; - if (msg->status_code == 200 && + auth = g_weak_ref_get (weak_ref); + + if (auth && msg->status_code == 200 && e_soup_auth_negotiate_update (auth, msg, NULL)) e_soup_auth_negotiate_is_ready (auth, msg); + g_clear_object (&auth); + e_soup_auth_negotiate_delete_context (msg, user_data); } @@ -129,15 +140,17 @@ { SoupMessageState *state; + G_LOCK (msgs_table); state = g_hash_table_lookup (msgs_table, msg); if (!state) { state = g_slice_new0 (SoupMessageState); g_hash_table_insert (msgs_table, msg, state); - g_signal_connect ( + g_signal_connect_data ( msg, "finished", G_CALLBACK (e_soup_auth_negotiate_message_finished), - auth); + e_weak_ref_new (auth), (GClosureNotify) e_weak_ref_free, 0); } + G_UNLOCK (msgs_table); return state; } @@ -192,10 +205,13 @@ chlg = NULL; state->challenge = g_strdup (chlg); state->challenge_available = TRUE; + g_strfreev (auths); return TRUE; } } + g_strfreev (auths); + return FALSE; } @@ -272,6 +288,7 @@ */ soup_message_set_status_full ( msg, SOUP_STATUS_BAD_REQUEST, error->message); + g_clear_error (&error); return FALSE; } } @@ -319,5 +336,7 @@ object_class->finalize = e_soup_auth_negotiate_finalize; + G_LOCK (msgs_table); msgs_table = g_hash_table_new (NULL, NULL); + G_UNLOCK (msgs_table); }
