Blame SOURCES/crash-under-soup_socket_new.patch

7b6291
diff -up libsoup-2.56.0/libsoup/soup-session.c.crash-under-soup_socket_new libsoup-2.56.0/libsoup/soup-session.c
7b6291
--- libsoup-2.56.0/libsoup/soup-session.c.crash-under-soup_socket_new	2016-09-16 17:14:27.000000000 +0200
7b6291
+++ libsoup-2.56.0/libsoup/soup-session.c	2017-11-15 17:20:52.660392432 +0100
7b6291
@@ -369,6 +369,7 @@ soup_session_finalize (GObject *object)
7b6291
 	G_OBJECT_CLASS (soup_session_parent_class)->finalize (object);
7b6291
 }
7b6291
 
7b6291
+/* requires conn_lock */
7b6291
 static void
7b6291
 ensure_socket_props (SoupSession *session)
7b6291
 {
7b6291
@@ -784,11 +785,13 @@ soup_session_set_property (GObject *obje
7b6291
 		break;
7b6291
 	}
7b6291
 
7b6291
+	g_mutex_lock (&priv->conn_lock);
7b6291
 	if (priv->socket_props && socket_props_changed) {
7b6291
 		soup_socket_properties_unref (priv->socket_props);
7b6291
 		priv->socket_props = NULL;
7b6291
 		ensure_socket_props (session);
7b6291
 	}
7b6291
+	g_mutex_unlock (&priv->conn_lock);
7b6291
 }
7b6291
 
7b6291
 static void
7b6291
@@ -808,7 +811,9 @@ soup_session_get_property (GObject *obje
7b6291
 		g_value_set_boxed (value, priv->proxy_uri);
7b6291
 		break;
7b6291
 	case PROP_PROXY_RESOLVER:
7b6291
+		g_mutex_lock (&priv->conn_lock);
7b6291
 		ensure_socket_props (session);
7b6291
+		g_mutex_unlock (&priv->conn_lock);
7b6291
 		g_value_set_object (value, priv->proxy_resolver);
7b6291
 		break;
7b6291
 	case PROP_MAX_CONNS:
7b6291
@@ -829,12 +834,16 @@ soup_session_get_property (GObject *obje
7b6291
 		break;
7b6291
 	case PROP_SSL_USE_SYSTEM_CA_FILE:
7b6291
 		tlsdb = g_tls_backend_get_default_database (g_tls_backend_get_default ());
7b6291
+		g_mutex_lock (&priv->conn_lock);
7b6291
 		ensure_socket_props (session);
7b6291
+		g_mutex_unlock (&priv->conn_lock);
7b6291
 		g_value_set_boolean (value, priv->tlsdb == tlsdb);
7b6291
 		g_clear_object (&tlsdb);
7b6291
 		break;
7b6291
 	case PROP_TLS_DATABASE:
7b6291
+		g_mutex_lock (&priv->conn_lock);
7b6291
 		ensure_socket_props (session);
7b6291
+		g_mutex_unlock (&priv->conn_lock);
7b6291
 		g_value_set_object (value, priv->tlsdb);
7b6291
 		break;
7b6291
 	case PROP_TLS_INTERACTION: