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);
 }

Reply via email to