summaryrefslogtreecommitdiff
path: root/mail/mail-notification/patches
diff options
context:
space:
mode:
authorgdt <gdt>2007-04-20 18:04:15 +0000
committergdt <gdt>2007-04-20 18:04:15 +0000
commita67537e1b05ca0efad369562f11c8e4cdc221cdc (patch)
treea97f415136f0179e0c699f02ad6f01a614c1a1a1 /mail/mail-notification/patches
parent66dc906a7aa68a007218cf14d51ee32cfda0c073 (diff)
downloadpkgsrc-a67537e1b05ca0efad369562f11c8e4cdc221cdc.tar.gz
Add patch from maintainer to add global lock around SSL
initialization. Resolves SMP crash, but it seems really openssl should be compiled with thread spport.
Diffstat (limited to 'mail/mail-notification/patches')
-rw-r--r--mail/mail-notification/patches/patch-aa24
1 files changed, 24 insertions, 0 deletions
diff --git a/mail/mail-notification/patches/patch-aa b/mail/mail-notification/patches/patch-aa
new file mode 100644
index 00000000000..cfa478ac847
--- /dev/null
+++ b/mail/mail-notification/patches/patch-aa
@@ -0,0 +1,24 @@
+--- src/mn-client-session.c.orig Wed Jan 17 15:07:49 2007
++++ src/mn-client-session.c Fri Apr 20 19:05:51 2007
+@@ -369,6 +369,8 @@
+ {
+ SSL_CTX *ctx;
+ GError *err = NULL;
++ static GStaticMutex ssl_lock = G_STATIC_MUTEX_INIT;
++ int status;
+
+ g_return_val_if_fail(session != NULL, FALSE);
+ g_return_val_if_fail(session->ssl == NULL, FALSE);
+@@ -394,7 +396,11 @@
+ return FALSE;
+ }
+
+- if (SSL_connect(session->ssl) != 1)
++ g_static_mutex_lock(&ssl_lock);
++ status = SSL_connect(session->ssl);
++ g_static_mutex_unlock(&ssl_lock);
++
++ if (status != 1)
+ {
+ mn_client_session_set_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to perform the SSL/TLS handshake: %s"), mn_ssl_get_error());
+ return FALSE;